Я полагаю, что в некоторых случаях разумно хотеть такого поведения, но я бы сказал, что код, не вызывающий отправку формы, должен (всегда) быть поведением по умолчанию. Предположим, вы хотите отследить отправку формы с помощью
$("form").submit(function(e){
e.preventDefault();
});
, а затем выполнить некоторую проверку ввода. Если код может вызвать обработчики отправки, вы никогда не сможете включить
$("form").submit()
внутри этого обработчика, потому что это приведет к бесконечному циклу (будет вызываться один и тот же обработчик, предотвращающий отправку, проверку и повторную отправку). Вы должны иметь возможность вручную отправить форму внутри обработчика отправки, не вызывая тот же обработчик.
Я понимаю, что это НЕ ОТВЕЧАЕТ на вопрос напрямую, но на этой странице есть много других ответов о том, как эту функциональность можно взломать, и я чувствовал, что на это нужно указать (и это слишком долго для комментария ).