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.addEventListener
Informationen finden Sie in dieser Dokumentation zu MDN .
submit
Verwenden 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 submit
Ereignis 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 ele
ist die Formularelementreferenz und callback
als 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 $scope
ist 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 onSubmit
Requisite 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
?