Warum verwenden Leute jQuery immer, wenn es nicht notwendig ist?
Warum können Menschen nicht einfach einfaches JavaScript verwenden?
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 ist eine Funktion, die Sie beim Senden des Formulars aufrufen möchten.
Weitere EventTarget.addEventListenerInformationen finden Sie in dieser Dokumentation zu MDN .
submitVerwenden Sie .preventDefault()in Ihrer Rückruffunktion Folgendes, um das native Ereignis abzubrechen (das Senden des Formulars zu verhindern).
document.querySelector("#myForm").addEventListener("submit", function(e){
if(!isValid){
e.preventDefault(); //stop form from submitting
}
});
Das submitEreignis mit Bibliotheken abhören
Wenn Sie aus irgendeinem Grund entschieden haben, dass eine Bibliothek erforderlich ist (Sie verwenden bereits eine oder möchten sich nicht mit browserübergreifenden Problemen befassen), finden Sie hier eine Liste von Möglichkeiten, um das Übermittlungsereignis in allgemeinen Bibliotheken anzuhören:
jQuery
$(ele).submit(callback);
Wo eleist die Formularelementreferenz und callbackals Rückruffunktionsreferenz. Referenz
<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(){ /*...*/ };
Sehr einfach, wo $scopeist der Umfang, den das Framework in Ihrem Controller bietet . Referenz
Reagieren
<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
}
Geben Sie einfach einen Handler an die onSubmitRequisite weiter. Referenz
Andere Frameworks / Bibliotheken
Weitere Informationen finden Sie in der Dokumentation Ihres Frameworks.
Validierung
Sie können Ihre Validierung jederzeit in JavaScript durchführen, aber mit HTML5 haben wir auch eine native Validierung.
<!-- Must be a 5 digit number -->
<input type="number" required pattern="\d{5}">
Sie brauchen nicht einmal JavaScript! Wenn die native Validierung nicht unterstützt wird, können Sie auf einen JavaScript-Validator zurückgreifen.
Demo: http://jsfiddle.net/DerekL/L23wmo1L/
document.forms['yourForm'].onsubmit = function(){}? OderaddEventListener?