Я заметил, что вы используете <button>
вместо <input>
для кнопки отправки.
Насколько я знаю, все должно быть в порядке, но создайте оповещение сразу после вызова функции обработчика события, например:
alert(e.attr("id"));
Если он ничего не возвращает, то проблема в том, что нажатие кнопки отправки вызывает событие, которое прослушивается, то есть форма отправляется.
Однако, если он возвращает идентификатор кнопки, а не форму, проблема, вероятно, заключается в том, что вы используете preventDefault
на кнопке, а не на форме (или наоборот). Возможно, это можно исправить, просто используя return false
и полностью избавившись от e.preventDefault()
.
Однако, если ни один из вышеперечисленных случаев не соответствует действительности, и вы получаете оповещение, когда нажимаете кнопку Отправить, вероятно, проблема связана с синхронизацией сценария (где вы делаете protectDefault).
Кстати, ajax вообще происходит, но вы также получаете отправку формы или вся функция игнорируется?
У меня была форма, которая отправляла бы, несмотря ни на что, если я не добавил что-то еще для функции validate, кроме функции validate. В конечном счете это было связано с неправильным событием, которое вызывается. Дополнительный объем работы, который я добавил, каким-то образом сделал это так, что событие, которое я прослушивал , в конечном итоге было захвачено.