如何使用javascript阻止onclick触发两次 功能保存团队() { $('#saveBtn')。解除绑定('click'); $.ajax( { 类型:“POST”, url:“save.php”, 数据:{team_数组:t_pls}, 成功:功能(数据){ $('#msg')。文本(数据); } }); }

如何使用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。我在这里帮不上忙。

我搜索了一下,找到了一些解决办法,但都不管用。如何防止SAVE button/onclick事件触发两次??我试图在mysql中拯救一个10人的团队。若团队是相同的,并且onclick事件发生,则不应发生任何事情。 有人建议我在PHP脚本中这样做(在我的例子中是save.PHP)。但我想不出完美的解决方案

我想我必须使用php来实现这一点。当团队未更改时,应禁用onclick事件,当团队更改时,应进行ajax调用,并将团队保存在数据库中。
因此,只需一次()调用或禁用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()">