如何使用javascript阻止onclick触发两次 功能保存团队() { $('#saveBtn')。解除绑定('click'); $.ajax( { 类型:“POST”, url:“save.php”, 数据:{team_数组:t_pls}, 成功:功能(数据){ $('#msg')。文本(数据); } }); }
我搜索了一下,找到了一些解决办法,但都不管用。如何防止SAVE button/onclick事件触发两次??我试图在mysql中拯救一个10人的团队。若团队是相同的,并且onclick事件发生,则不应发生任何事情。 有人建议我在PHP脚本中这样做(在我的例子中是save.PHP)。但我想不出完美的解决方案 我想我必须使用php来实现这一点。当团队未更改时,应禁用onclick事件,当团队更改时,应进行ajax调用,并将团队保存在数据库中。如何使用javascript阻止onclick触发两次 功能保存团队() { $('#saveBtn')。解除绑定('click'); $.ajax( { 类型:“POST”, url:“save.php”, 数据:{team_数组:t_pls}, 成功:功能(数据){ $('#msg')。文本(数据); } }); },javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我搜索了一下,找到了一些解决办法,但都不管用。如何防止SAVE button/onclick事件触发两次??我试图在mysql中拯救一个10人的团队。若团队是相同的,并且onclick事件发生,则不应发生任何事情。 有人建议我在PHP脚本中这样做(在我的例子中是save.PHP)。但我想不出完美的解决方案 我想我必须使用php来实现这一点。当团队未更改时,应禁用onclick事件,当团队更改时,应进行ajax调用,并将团队保存在数据库中。 因此,只需一次()调用或禁用attr。我在这里帮不上忙。
因此,只需一次()调用或禁用attr。我在这里帮不上忙。请提供一些php脚本帮助。简单的解决方案是禁用按钮并在回调时启用它
function save_team()
{
$('#saveBtn').unbind('click');
$.ajax(
{
type: "POST",
url: "save.php",
data: { team_Array : t_pls },
success: function(data) {
$('#msg').text(data);
}
});
}
<input type="submit" value="SAVE" id="saveBtn" onclick="save_team()">
用于禁用按钮
$('#saveBtn').attr('disabled','disabled')
$('#Btn').attr('disabled',true);
我建议在第一次单击按钮时禁用该按钮。在ajax调用之前。我们必须小心地启用成功按钮和错误按钮。您还可以使用完整的AJAX调用来启用该按钮
$('#saveBtn').attr('disabled','disabled')
$('#Btn').attr('disabled',true);
使用jquery one:
{
$('#btnId').attr("disabled", true);
// make the AJAX call..
$('#btnId').attr("disabled", false);
}
HTML
$( "#saveBtn" ).one( "click", function() {
save_team();
});
当ajax返回响应时,禁用按钮并启用。我建议做三件事。单击按钮后,首先禁用该按钮
$('#saveBtn').attr('disabled','disabled')
其次,使用one()绑定click处理程序
第三,这是将业务逻辑放在UI中,因此如果必须在UI中,那么检查应该在服务器上的php中重复。禁用按钮,并在成功或出错时重新启用它。使用jQuery one方法
$("#saveBtn").one('click', save_team);
您必须取消自动表单提交,在函数中返回
false
,并在onclick
属性值中返回:
$('#saveBtn').one('click', save_team)
功能保存团队()
{
//$('#saveBtn')。解除绑定('click');我认为不再需要这一行了
$.ajax(
{
类型:“POST”,
url:“save.php”,
数据:{team_数组:t_pls},
成功:功能(数据){
$('#msg')。文本(数据);
}
});
返回false;
}
单击按钮后,您可以禁用该按钮。绑定处理程序,使其仅触发一次
function save_team()
{
//$('#saveBtn').unbind('click'); I think this line is not needed anymore
$.ajax(
{
type: "POST",
url: "save.php",
data: { team_Array : t_pls },
success: function(data) {
$('#msg').text(data);
}
});
return false;
}
<input type="submit" value="SAVE" id="saveBtn" onclick="return save_team()">