Tại sao mọi người luôn sử dụng jQuery khi không cần thiết?
Tại sao mọi người không thể sử dụng JavaScript đơn giản?
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
là một chức năng mà bạn muốn gọi khi biểu mẫu đang được gửi.
Giới thiệu EventTarget.addEventListener
, hãy xem tài liệu này trên MDN .
Để hủy submit
sự kiện gốc (ngăn không cho biểu mẫu được gửi), hãy sử dụng .preventDefault()
chức năng gọi lại của bạn,
document.querySelector("#myForm").addEventListener("submit", function(e){
if(!isValid){
e.preventDefault(); //stop form from submitting
}
});
Lắng nghe submit
sự kiện với các thư viện
Nếu vì một lý do nào đó mà bạn quyết định thư viện là cần thiết (bạn đã sử dụng một hoặc bạn không muốn giải quyết các vấn đề trên trình duyệt chéo), thì đây là danh sách các cách để nghe sự kiện gửi trong các thư viện phổ biến:
jQuery
$(ele).submit(callback);
ele
Tham chiếu phần tử biểu mẫu ở đâu và callback
là tham chiếu hàm gọi lại. Tài liệu tham khảo
<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(){ /*...*/ };
Rất đơn giản, đâu $scope
là phạm vi được cung cấp bởi khung bên trong bộ điều khiển của bạn . Tài liệu tham khảo
Phản ứng
<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
}
Đơn giản chỉ cần vượt qua trong một xử lý để onSubmit
chống đỡ. Tài liệu tham khảo
Các khung / thư viện khác
Tham khảo tài liệu của khung của bạn.
Thẩm định
Bạn luôn có thể thực hiện xác thực bằng JavaScript, nhưng với HTML5, chúng tôi cũng có xác thực gốc.
<!-- Must be a 5 digit number -->
<input type="number" required pattern="\d{5}">
Bạn thậm chí không cần bất kỳ JavaScript! Bất cứ khi nào xác thực bản địa không được hỗ trợ, bạn có thể dự phòng trình xác thực JavaScript.
Bản trình diễn: http://jsfiddle.net/DerekL/L23wmo1L/
document.forms['yourForm'].onsubmit = function(){}
? Hay làaddEventListener
?