Jquery setTimeout函数被submit忽略,使用按钮一切正常

Jquery setTimeout函数被submit忽略,使用按钮一切正常,jquery,html,button,submit,settimeout,Jquery,Html,Button,Submit,Settimeout,实际上,我的代码如下: <form method="post" action="" id="form"> <input type="submit" value="Anlage Ein" id="power_off" title="Anlage Ein"> </form> 警报显示不起作用。如果我用一个正常的按钮替换提交,它就会工作。我不明白为什么。对我来说,将submit与setTimeout结合使用是非常重要的。 以下代码正在运行: <form

实际上,我的代码如下:

<form method="post" action="" id="form">
  <input type="submit" value="Anlage Ein" id="power_off" title="Anlage Ein">
</form>
警报显示不起作用。如果我用一个正常的按钮替换提交,它就会工作。我不明白为什么。对我来说,将submit与setTimeout结合使用是非常重要的。 以下代码正在运行:

<form method="post" action="" id="form">
  <input type="button" value="Anlage Ein" id="power_off" title="Anlage Ein">
</form>
你能帮我一下吗,为什么它用普通按钮工作,而不是用提交

多谢各位。
hovrcraft.

提交按钮将提交表单

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

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

尝试以下操作:

<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>

$(文档).ready(函数(){
$(“#电源关闭”)。单击(功能(e){
e、 预防默认值()
设置超时(“警报('Boom!');”,2000);
});
});
谢谢你,伙计, 就像你说的那样。 现在我试着将你的解决方案复制到我的真实案例中。不幸的是,它现在无法工作,因为我需要将值发送到我的Web服务器

    $(document).ready(function(){ 

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


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

我已经在代码中插入了preventDefault函数,但现在页面似乎不再刷新,也不再发送值1

期待您的回复

比尔,
气垫船

问题是因为
#power_off
按钮是
type=“submit”
,因此当表单数据发送回服务器时,页面将被卸载,因此不会执行进一步的JS逻辑。如果需要这种行为,不要使用提交按钮,也不要发送AJAX请求而不是表单提交
    <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>