【问题标题】:setTimeout Function is ignored with submit, with button everything is finesetTimeout 函数被提交忽略,按钮一切都很好
【发布时间】:2018-12-13 15:41:03
【问题描述】:

其实我的代码如下:

<form method="post" action="" id="form">
  <input type="submit" value="Anlage Ein" id="power_off" title="Anlage Ein">
</form>
$(document).ready(function() {
  $("#power_off").click(function() {
    setTimeout("alert('Boom!');", 2000);
  });
});

显示警报是行不通的。如果我用普通按钮替换提交它的工作。我不明白为什么。对我来说,将提交与 setTimeout 结合使用非常重要。 以下代码正在运行:

<form method="post" action="" id="form">
  <input type="button" value="Anlage Ein" id="power_off" title="Anlage Ein">
</form>
$(document).ready(function() { 
  $("#power_off").click(function(){
    setTimeout("alert('Boom!');", 2000);
  });
});

您能帮帮我吗,为什么它可以使用普通按钮而不是提交。

非常感谢。 飞行器。

【问题讨论】:

  • 问题是因为#power_off按钮是type="submit",所以当表单数据被发送回服务器时,页面将被卸载,因此不会执行进一步的JS逻辑。如果您需要这种行为,请不要使用提交按钮,或发送 AJAX 请求而不是表单提交

标签: jquery html button submit settimeout


【解决方案1】:

提交按钮将提交表单

因此,在setTimeout 在评估您的字符串之前等待的两秒钟内,浏览器已离开当前页面并加载了新页面(来自相同的 URL,因此看起来可能相同)。

计时器没有在新页面中运行,因此它不会在那里执行。

【讨论】:

    【解决方案2】:

    谢谢你的朋友, 就像你说的那样工作。 现在我试图将您的解决方案复制到我的真实案例中。不幸的是,它现在不起作用,因为我需要将值发送到我的网络服务器。

        $(document).ready(function(){ 
    
        $("#power_off").click(function(e){
        e.preventDefault()
        $('#wert1').val('1');
        setTimeout(function(){
        $('#wert1').val('0');},1000);
        });
    

    });

        <form method="post" action="" id="form">
                <input type="image" src="" value="" id="power_off" title="Anlage Ein">
                <input type="hidden" name='"DBEHmi".AnlageEin' value="" id="wert1" >
        </form>
    

    如您所见,我希望在单击图像后发送值 1。经过 1000 毫秒的时间后,我希望该值变回 0。

    我已将 preventDefault 函数插入到我的代码中,但现在页面似乎不再刷新并且不发送值 1。

    期待您的回复。

    BR, 气垫船

    【讨论】:

      【解决方案3】:

      试试这个:

      <script>
      $(document).ready(function(){ 
      
          $("#power_off").click(function(e){
            e.preventDefault()
            setTimeout("alert('Boom!');", 2000);
          });
      });
      </script>
      </head>
      <body>
          <form method="post" action="" id="form">
                  <input type="submit" value="Anlage Ein" id="power_off" title="Anlage Ein">
          </form>
      </body>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-14
        相关资源
        最近更新 更多