长话短说,我正在开发一个前端,其中主要控件涉及很多人 <form>
标签。
我想要的是拦截所有submit()事件,检查提交表单中的自定义属性,如果存在,则执行某些代码。
我有这个:
$('form').submit(function(event) {
var myForm=$(this);
alert('SUBMIT!');
if(myForm.hasOwnProperty('confirm')){
alert ('Call confirmation');
event.preventDefault();
}
if(myForm.hasOwnProperty('verify')) {
alert ('Call verification');
event.preventDefault();
}
});
但它似乎不起作用。警报永远不会触发,我在控制台中设置的断点也不会触发。
我对 JQuery 相当陌生,我不确定我做错了什么。有什么指点吗?
最佳答案
myForm
是一个 jQuery 对象。您需要访问底层 DOM 元素才能使用 hasOwnProperty :
$('form').submit(function(event) {
var myForm = this; // Do not convert to a jQuery object here
alert('SUBMIT!');
if(myForm.hasOwnProperty('confirm')){
alert ('Call confirmation');
event.preventDefault();
}
if(myForm.hasOwnProperty('verify')) {
alert ('Call verification');
event.preventDefault();
}
});
仅供引用,jQuery 有自己的方法来检查名为 .prop 的属性是否存在。 ,但我个人认为 hasOwnProperty
更好,因为它突出了您实际想要实现的目标。另外,默认情况下您已经拥有 DOM 对象,并且所有浏览器都支持 hasOwnProperty 方法,因此这比转换为 jQuery 对象的开销略少。
关于javascript - 如何通过jquery拦截所有submit()事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22553711/