event.preventDefault(); - отменяет действие формы по умолчанию, то есть ее отправление, а значит
$("input").addClass('input-error');
return false; - это уже в общем то пустой звук, как и в конце обработчика return false; ни к чему.
Если .ajaxSubmit(), значит у вас CMS MODX, так? Или подключили этот плагин? Вкупе с jQuery каша полнейшая.
console.log(вывод) - это для отладки, проверили, выбросили.
$("input").removeClass('input-error'); и $("input").addClass('input-success'); - это кому, если форм на странице 20 штук, а обработчик отправки формы работает с текущей? И если их 20, то это что:$("form").attr('action'), $("form").find('[type=reset]').click(), а обработчик отправки формы работает с текущей?
Либо вы не просто копируете то, что вам пишут, но еще и читаете и вникаете что к чему, либо вы напишите монстра, который естественно работать не будет.
Словами это так:
$("form").submit(function(event) { - всем формам на странице установить ЭТОТ обработчик события отправления формы
event.preventDefault(); - отменить отправку формы по умолчанию
а далее в обработчике this - это ссылка на текущую форму (но не как объект jQuery, а как DOM элемент страницы), и достаточно использовать ее а не ковыряться опять в структуре DOM. Но в дальнейшем, по ходу сценария this может быть и переопределен, а также посредством JQ изменяются классы элементов, тогда можно поступить так, с учетом того, что
в jQuery своих ajax-методов как грязи и .ajaxSubmit() совсем не нужен:
$.valHooks.input = { //тут мы будем обрезать крайние пробелы у полей формы, перед использованием их значений посредством jQuery
get: function(e) {
return $.trim(e.value)
}
};
$(function() { //тоже самое что и $(document).ready(function ()...
$('form').submit(function(e) {
e.preventDefault();
var f = this, //текущая! форма как DOM, а не объект jQuery
e = $(f.elements).slice(0, -2), //а это элементы формы без кнопки submit/reset, если они последние форме!, как объекты jQuery
//и если 20 форм имеют разнличные поля, и какждая из них может иметь разное их количество,
//то все проверки нужно делать проходом в цикле по этим полям, проверяя значения каждого
err = 0; //признак ошибки проверки полей формы - если 0, то нет, 1 - есть незаполненные поля
e.each(function() {
//проверяем значение поля, и если не заполнено,
//то err = 1 и добавляем класс input-error элементу
})
//проверяем, если нет ошибок отправляем форму
if(!err) {
$.ajax({ //отправка формы ajax-методом
url: f.action,
type: 'POST',
dataType: 'json',
success: function(data) {
f.reset(); //сбрасываем текущую форму!
},
})
}
});
});
Что у вас за 20 форм, почему не обрабатываются только богу известно, и коли хотите получить ответ, то приводите примеры форм, либо поясняйте в чем их разница/схожесть.