javascript - 如何通过jquery拦截所有submit()事件

标签 javascript jquery

长话短说,我正在开发一个前端,其中主要控件涉及很多人 <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/

相关文章:

javascript - 如何将回调函数的返回值发送到主函数

javascript - 当我发送其他值作为参数时,Kendo Upload 文件在 Controller 中发送 null

javascript - 如何在使用 redux 调度操作后更新字段值

javascript - 反转对象与其他对象事件的耦合方式

php - 这个循环的模数逻辑是否正确?

javascript - jquery滑动切换: hidden + new link

javascript - 在网站的新页面上保持 jquery 下拉菜单打开

javascript - 我可以定义一个函数,该函数根据哪个选择器处于事件状态而采用可变参数吗?

javascript - 以最大宽度在 div 中居中图像

javascript - Protractor:如何使用 href 子字符串或 span 子字符串单击元素?