Чому люди завжди використовують 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>
КутовийJS (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
?