2015-07-20 73 views
1

我有一个按钮或锚点元素,将用户重定向到不同的视图。一旦按钮被点击,它会触发数据库写入事件。但是,当用户多次单击该按钮等待页面重新加载时,会创建多个记录,并且会导致应用程序保存随后的表单。JavaScript解决方案忽略点击进行第一次点击?

什么是最好的方法,也许在JavaScript或jQuery忽略第一个之后的点击?

UPDATE:

其实我做这个和它的工作 - 它不会禁用按钮,但在上点击事件返回false。

<script> 
    $("#linkresponse").click(function() { 
    $(this).click(function() { 
     return false; 
    }); 
     return true; 
    }); 
</script> 

这似乎是一个很好的解决方案,任何理由我不应该遵循它?

+0

前端显示加载程序显示用户将知道进程正在后台进行。或者,您可以禁用按钮点击一次(不推荐)。检查了这一点http://stackoverflow.com/questions/1964839/jquery-please-wait-loading-animation?answertab=active#tab-top –

回答

4

每当一个事件应为元素仅出现一次,使用jQuery的one()方法:

$('#myButton').one('click', function(){ 
    ... 
}); 
0

创建一个全局变量(称之为hasClicked或其他)设置为'false'。在你的onclick方法,有这样的逻辑,在最高层:

if (hasClicked) 
    return; 
else 
    hasClicked = true; 
0

其实我加入这个脚本。它不会禁用按钮,但每次后续点击都会返回false。它现在有效!谢谢你的建议。

<script> 
    $("#buttonid").click(function() { 
    $(this).click(function() { 
     return false; 
    }); 
     return true; 
    }); 
</script>