Почему люди всегда используют jQuery, когда в этом нет необходимости?
Почему люди не могут просто использовать простой JavaScript?
var ele = /*Your Form Element*/;
if(ele.addEventListener){
ele.addEventListener("submit", callback, false); //Modern browsers
}else if(ele.attachEvent){
ele.attachEvent('onsubmit', callback); //Old IE
}
callback
- это функция, которую вы хотите вызвать при отправке формы.
О EventTarget.addEventListener
, ознакомьтесь с этой документацией на MDN .
Чтобы отменить собственное submit
событие (предотвратить отправку формы), используйте .preventDefault()
в своей функции обратного вызова,
document.querySelector("#myForm").addEventListener("submit", function(e){
if(!isValid){
e.preventDefault(); //stop form from submitting
}
});
Прослушивание submit
мероприятия с библиотеками
Если по какой-то причине вы решили, что библиотека необходима (вы уже используете ее или не хотите иметь дело с кроссбраузерными проблемами), вот список способов прослушивания события отправки в общих библиотеках:
JQuery
$(ele).submit(callback);
Где ele
ссылка на элемент формы и ссылка callback
на функцию обратного вызова. Ссылка
<iframe width="100%" height="100%" src="http://jsfiddle.net/DerekL/wnbo1hq0/show" frameborder="0"></iframe>
AngularJS (1.x)
<form ng-submit="callback()">
$scope.callback = function(){ /*...*/ };
Очень просто, где $scope
находится область, предоставляемая фреймворком внутри вашего контроллера . Ссылка
реагировать
<form onSubmit={this.handleSubmit}>
class YourComponent extends Component {
// stuff
handleSubmit(event) {
// do whatever you need here
// if you need to stop the submit event and
// perform/dispatch your own actions
event.preventDefault();
}
// more stuff
}
Просто передайте обработчик onSubmit
опоре. Ссылка
Другие фреймворки / библиотеки
Обратитесь к документации вашего фреймворка.
Проверка
Вы всегда можете выполнить свою проверку в JavaScript, но с HTML5 у нас также есть собственная проверка.
<!-- Must be a 5 digit number -->
<input type="number" required pattern="\d{5}">
Вам даже не нужен JavaScript! Если собственная проверка не поддерживается, вы можете вернуться к валидатору JavaScript.
Демо: http://jsfiddle.net/DerekL/L23wmo1L/
document.forms['yourForm'].onsubmit = function(){}
? ИлиaddEventListener
?