我有一个按钮或锚元素,可以将用户重定向到另一个视图。单击该按钮后,将触发DB写入事件。但是,当用户多次单击按钮等待页面重新加载时,会创建多个记录,这会导致应用程序出现问题,从而保存随后的表单。
最好的方法是什么,也许在javascript或jQuery中忽略第一个之后的点击?
更新:
我实际上做了这个并且它有效 - 它没有禁用按钮但在点击事件上返回false。
<script>
$("#linkresponse").click(function() {
$(this).click(function() {
return false;
});
return true;
});
</script>
这似乎是一个很好的解决方案,我不应该遵循它吗?
答案 0 :(得分:4)
每当事件只对元素发生一次时,请使用jQuery的 one()
方法:
$('#myButton').one('click', function(){
...
});
答案 1 :(得分:0)
创建一个全局变量(称之为hasClicked或其他)设置为&#39; false&#39;。在你的onclick方法中,在最顶端有这样的逻辑:
if (hasClicked)
return;
else
hasClicked = true;
答案 2 :(得分:0)
我实际上添加了这个脚本。它不会禁用该按钮,但每次后续点击都会返回false。它现在有效!谢谢你的建议。
<script>
$("#buttonid").click(function() {
$(this).click(function() {
return false;
});
return true;
});
</script>