【问题标题】:Button Firing 2 Scripts instead of 1按钮触发 2 个脚本而不是 1 个
【发布时间】:2016-11-10 11:16:09
【问题描述】:

我有一个表格,它允许用户从项目列表中进行选择,并将所选 ID 存储在隐藏的表单输入中,然后是一个提交按钮,用于验证以确保隐藏的表单输入不为空。

这是显示单行和提交按钮的 HTML:

<tr class="" id="PR7518">
  <td>1234A</td>
  <td>Option A</td>
  <td class="text-center">
    <button type="button" class="btn btn-success btn-sm">Select</button>
  </td>

  <div class="text-center">
    <button type="submit" name="buttonType" value="saveSelected" class="btn btn-success">Submit</button>
  </div>

提交按钮正在调用以下两个脚本,而我只希望它调用表单提交(第二个脚本):

$(document).ready(function() {
  $('button.btn-success').click(function() {
    $('#productID').val(productID);
  });
});



$("form").submit(function(event) {
  event.preventDefault();
  if ($('#productID').val() == '') {
    $("#productID_Error").show();
    return false;
  }
});

不确定我需要进行哪些更改以防止提交按钮调用第一个脚本?

【问题讨论】:

    标签: javascript jquery html forms dom


    【解决方案1】:

    第一个选择器$('button.btn-success') 选择了两个按钮,因为它们都具有“btn-success”类。您需要向第一个按钮添加某种唯一标识符,以便您可以选择它而无需同时获取两个按钮。您可以通过向第一个按钮添加另一个类或 id,然后调整您的选择器以指向该唯一标识符来做到这一点。

    【讨论】:

      【解决方案2】:

      您可以在第一个脚本中将:not([type="submit"]) 添加到您的选择器以排除提交按钮。

      $(document).ready(function() {
        $('button.btn-success:not([type="submit"])').click(function() {
          $('#productID').val(productID);
        });
      });
      

      【讨论】:

        猜你喜欢
        • 2018-07-15
        • 2021-12-01
        • 1970-01-01
        • 2018-03-06
        • 2018-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多