如何使用javascript停止onclick两次触发

时间:2013-10-25 11:40:17

标签: javascript php jquery mysql ajax

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()">

我搜索过,找到了一些解决方案,但他们不工作。如何防止SAVE按钮/ onclick事件两次触发?我正试图在mysql中保存10名队员。如果团队相同且onclick事件发生,则不会发生任何事情。 有人建议我在PHP脚本中执行此操作(在我的情况下为save.php)。但我想不出完美的解决方案。

我想我必须使用php来做到这一点。当团队没有改变时,应该禁用onclick事件,当团队确实更改ajax时,应该进行调用并且团队应该保存在DB中。 所以,one()调用或禁用attr。在这里不会有帮助。请提示一些PHP脚本帮助。

9 个答案:

答案 0 :(得分:2)

用于禁用按钮。

$('#Btn').attr('disabled',true);

答案 1 :(得分:2)

<强> HTML

<input type="button" value="SAVE" id="saveBtn" onclick="save_team()">

<强>的JavaScript

$('#saveBtn').attr('disabled','disabled')

禁用按钮并在响应从ajax返回时启用。

答案 2 :(得分:1)

简单的解决方案是禁用按钮并在回调时启用它。

$('#saveBtn').attr('disabled','disabled')

答案 3 :(得分:1)

我建议首次点击按钮时禁用该按钮。在ajax调用之前。我们必须小心启用成功按钮以及错误。您也可以使用完整的AJAX调用来启用按钮。

           {
                   $('#btnId').attr("disabled", true);
                  // make the AJAX call..
                  $('#btnId').attr("disabled", false);
           }

答案 4 :(得分:1)

使用jquery one:

$( "#saveBtn" ).one( "click", function() {
   save_team();
});

答案 5 :(得分:1)

我建议做三件事。单击按钮后首先禁用该按钮。

$('#saveBtn').attr('disabled','disabled');

其次使用one()

绑定点击处理程序
$("#saveBtn").one('click', save_team);

第三,这是在你的UI中放置业务逻辑,所以如果它必须在那里,那么检查应该在服务器上的php中重复。

答案 6 :(得分:1)

使用jQuery one方法

$('#saveBtn').one('click', save_team)

答案 7 :(得分:1)

您必须取消在您的函数中返回false的自动表单提交,并将其返回到您的onclick属性值中:

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()">

答案 8 :(得分:0)

禁用按钮,成功或错误时重新启用它。