【问题标题】:Hook jQuery script into both <input> and <button> tag将 jQuery 脚本挂接到 <input> 和 <button> 标签
【发布时间】:2015-09-18 05:54:54
【问题描述】:

我正在使用以下 Javascript 代码来处理 ajax 中的所有表单:

$(':submit:not(.form-default-submit)').click(function(event) {
    //Disable normal form submission, handle using ajax
});

这挂钩到所有标签,如

<input type="submit">

没有类form-default-submit

不幸的是,我刚刚注意到button 标签上没有这种情况,例如:

<button type="submit"></button>

我希望发生的事情。

是否可以修改此 Javascript 以从一个函数中挂钩两个元素?还是我必须为每个元素使用两个单独的 .click 事件?

【问题讨论】:

  • 通过使用,,您可以将多个选择器合二为一,就像在css中一样。

标签: javascript jquery html ajax forms


【解决方案1】:

您可以使用 , 分隔 multiple selector

$(':submit,button[type="submit"]').not('.form-default-submit').click(function(event) {
    //Disable normal form submission, handle using ajax
});

或者你可以使用attribute selector

$('[type="submit"]:not(.form-default-submit)').click(function(event) {
    //Disable normal form submission, handle using ajax
});

【讨论】:

    【解决方案2】:

    你可以只用逗号分隔:

    $(':submit:not(.form-default-submit), button[type=submit]:not(.form-default-submit)').click(function(event) {
        //x
    });
    

    在这里调琴:http://jsfiddle.net/0c1q9aqd/

    【讨论】:

      【解决方案3】:

      这应该可行:

      $(':submit:not(.form-default-submit), input[type=submit]').click(function(event) {
          //Disable normal form submission, handle using ajax
      });
      

      【讨论】:

        猜你喜欢
        • 2011-05-11
        • 1970-01-01
        • 2015-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多