实际上我的代码如下:
<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);
});
});
请帮助我,为什么它可以使用普通按钮,但不能使用提交按钮?
非常感谢。 飞机。
答案 0 :(得分:1)
一个提交按钮将提交表单。
因此setTimeout
在等待评估字符串之前等待的两秒钟内,浏览器已离开当前页面并加载了新页面(来自相同的URL,因此看起来可能完全相同)。
计时器不在新页面中运行,因此不在新页面中执行。
答案 1 :(得分:0)
谢谢你的交配, 就像你说的那样工作。 现在,我已尝试将您的解决方案复制到我的真实案例中。不幸的是,它现在无法正常工作,因为我需要将值发送到Web服务器。
$(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。经过1000ms的时间后,我希望该值恢复为0。
我已经在代码中插入了preventDefault函数,但是现在看来该页面不再刷新,也不再发送值1。
期待您的回复。
BR, 气垫船
答案 2 :(得分:-1)
尝试一下:
<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>