Одна вещь, которую вы могли бы рассмотреть, - использовать кнопку вместо отправки в качестве атрибута типа .
<button type="submit"></button>
То же, что
<input type="submit"></button>
Но если вы используете
<button type="button"></button>
или
<input type="button"></button>
, тогда используйте что-то вроде:
$(function() {
$("#buttonId").bind("click", function() {
// ...do stuff
//if all conditions are met
$("formId").trigger("submit");
});
});
Тогда он не будет отправлять форму какдействие по умолчанию, и вы можете присоединить к нему click listener и т. д. по мере необходимости, и заставить эту функцию слушателя отправлять форму вместо тех пор, пока выполняются любые заданные вами условия (если они есть).
Таким образом, вам не нужно использовать то, что, на мой взгляд, немного хакер, чтобы отменить (используя e.preventDefault (), вернуть false, что угодно ...) действие отправки формы, которое нене должен быть уволен в первую очередь.Отмена поведения по умолчанию может иногда приводить к странным и трудным отслеживанию побочных эффектов ... так почему бы не избежать необходимости делать это в первую очередь (если вы, конечно, можете)?