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>