Перед submit'ом хочу проверить поля: Код (Text): $('#addForm').submit(function() { $(".need").each(function(){ if(!$(this).val()) { $(this).css('border-color', 'red'); return false; } }); }); Объясните, почему выделяя пустое поле, скрипт все равно продолжает выполняться несмотря на return false?
У меня всё работает: Код (Text): $('#addForm').submit(function(f) { $(".need").each(function(){ if(!$(this).val()) { $(this).css('border-color', 'red'); f.preventDefault(); return false; } }); });
"return false" тут не остановит отправку формы. Браузер честно работает. А мы как бы принудительно останавливаем при определенном условии (поле пустое).
Думаю лучше наверно будет у формы вызывать Код (PHP): onsubmit="return $.forms(this)" А сама функция будет возвращать false. Код (PHP): $.forms=fucntion(obj) { if('object'===typeof obj) { $('input,textarea',obj).each(function() { //... }); } return false; };
А еще можно юзать атрибут pattern у инпутов и доверить валидацию браузеру. Все равно на стороне сервера придется проверять, хочешь ты или нет.