代码之家  ›  专栏  ›  技术社区  ›  Bitwise

查找提交表单的按钮

  •  1
  • Bitwise  · 技术社区  · 7 年前

    我有一个javascript:

      $('#new_campaign_update').on('submit', function(event) {
        debugger; 
      });
    

    有没有办法找到提交表单的按钮?

      <%= form.submit 'Publish', class: 'button button-large button-primary accent-black', title: 'Publish this update now' %>
    

    这是我为了提交表格而点击的按钮。我可以在活动或其他地方找到它吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Cory Kleiser    7 年前

    是的,您可以使用活动的 currentTarget :

    const buttons = document.querySelectorAll('input');
    
    buttons.forEach(b => b.addEventListener('click', (e) => {
      console.log(e.currentTarget);
      e.currentTarget.style = "background-color:blue;";
    }));
    <input type="submit" id="a">
    <input type="submit" id="b">
    <input type="submit" id="c">
    <input type="submit" id="d">
        2
  •  1
  •   Minderov    7 年前

    假设你有一张 id=new_campaign_update ,内部有一个带有类的单个按钮 button-primary ,该按钮将可由 $(this).find(".button-primary") ,因此您将按如下方式访问它:

    $('#new_campaign_update').on('submit', function(event) {
        const $button = $(this).find(".button-primary");
    });
    

    $(this) 内部jQuery回调指的是触发回调的元素。在元素内部,您可以找到按钮 .find(".button-primary)"

    或者,如果一个表单中有多个按钮,则可以向按钮本身添加onclick处理程序,如下所示:

    $('#new_campaign_update .button-primary').click(function() {
        const $button = $(this);
    }