我必须单击一次jQuery提交按钮两次

时间:2020-01-17 12:39:02

标签: jquery

我有一个简单的div按钮,必须单击两次才能使链接起作用。如何停止?

谢谢

<div class="toolbar">
  <table width="100%">
   <tr>
    <td class="toolbar-button" title="Print Data" id="btnNew1" onClick="javascript: submitformPrint();">
      <img src="'. IMAGES .'/Print.png" width="16" height="16" />
      <span>Print data</span>
    </td>
    <td width="100%" height="10" align="right">&nbsp;</td>
  </tr>
 </table>
</div>

function submitformPrint(){
    $('#btnNew1').click(function(e) {
        e.preventDefault();
        e.stopImmediatePropagation();
        $('#form2').attr({
            action: '../../../<?php echo CurrentVersion; ?>/Template/PopUpSimple.php?txtPageName=Pupils_TripsPrint',
            target: '_blank'
        });
        $('#form2').submit();
    });
}

1 个答案:

答案 0 :(得分:1)

您提供的代码存在问题,因为它在按钮上具有onClick处理程序。

<td class="toolbar-button" title="Print Data" id="btnNew1" onClick="javascript: submitformPrint();">

当您单击btnNew1时,您将进行绑定

$('#btnNew1').click(function(e) {
    e.preventDefault();
    e.stopImmediatePropagation();
    $('#form2').attr({
        action: '../../../<?php echo CurrentVersion; ?>/Template/PopUpSimple.php?txtPageName=Pupils_TripsPrint',
        target: '_blank'
    });
    $('#form2').submit();
});

这是您必须单击两次按钮的原因。相反,您的代码应如下所示。

<div class="toolbar">
      <table width="100%">
       <tr>
        <td class="toolbar-button" title="Print Data" id="btnNew1">
          <img src="'. IMAGES .'/Print.png" width="16" height="16" />
          <span>Print data</span>
        </td>
        <td width="100%" height="10" align="right">&nbsp;</td>
      </tr>
     </table>
    </div>

    $(document).ready(function(){
        $('#btnNew1').click(function(e) {
            e.preventDefault();
            e.stopImmediatePropagation();
            $('#form2').attr({
                action: '../../../<?php echo CurrentVersion; ?>/Template/PopUpSimple.php?txtPageName=Pupils_TripsPrint',
                target: '_blank'
            });
            $('#form2').submit();
        });
    }});