Javascript 如何避免重复的按钮点击请求

Javascript 如何避免重复的按钮点击请求,javascript,jquery,mysql,ajax,onclick,Javascript,Jquery,Mysql,Ajax,Onclick,我正在单击一个按钮并调用一个函数。。。当我按两次按钮时 数据插入两次 在mysql数据库中,我如何在我的案例中避免它 这是我的动态html: <button type="button" href="javascript:;" class="btn btn-primary" onclick="jobResponse('yes',<?php echo $myjobs['id_job'];?>)"> Subimt </b

我正在单击一个按钮并调用一个函数。。。当我按两次按钮时

数据插入两次

在mysql数据库中,我如何在我的案例中避免它

这是我的动态html:

<button type="button"
    href="javascript:;"
     class="btn btn-primary"
       onclick="jobResponse('yes',<?php echo $myjobs['id_job'];?>)"> 
         Subimt </button>

传递按钮引用并禁用它,然后在ajax完成后,如果需要再次启用它

<button type="button" href="javascript:;" class="btn btn-primary" onclick="jobResponse(this, 'yes',<?php echo $myjobs['id_job'];?>)">    Subimt</button>
<!--                                                                   ----------------^^^^----


<script type="text/javascript">
  function jobResponse(ele, res, jobId) {
    var frm_data = {
      res: res,
      jobId: jobId
    };
    // disable the button
    $(ele).prop('disabled', true);
    $.ajax({
      //ajax resopons and requst
      complete: function() {
        // enable the button if you need to
        $(ele).prop('disabled', false);
      }
    });
  }
</script>

当用户第一次单击下面的按钮时,您可以执行类似的禁用操作

onclick="this.disabled='true';jobResponse('yes',<?php echo $myjobs['id_job'];?>)"> 
onclick=“this.disabled='true';作业响应('yes',)”>

您可以使用这样的标志

<script type="text/javascript">

var isClicked = false;
    function jobResponse(res,jobId){
if(isClicked=== false){
       var frm_data = { res : res,
            jobId : jobId
        }
        $.ajax({
            //ajax resopons and requst
        });
       isClicked  = true;
}
    }
    </script>

var isClicked=false;
函数jobResponse(res、jobId){
如果(isClicked==假){
var frm_data={res:res,
jobId:jobId
}
$.ajax({
//ajax解决方案和需求
});
isClicked=true;
}
}

您可以在这里遵循一个简单的技巧。最初定义布尔型变量
true
。第一次单击后,将变为
false
。就这样

<script type="text/javascript">
var x=true;
function jobResponse(res,jobId){
    if(x){
        x=false;
        var frm_data = { res : res,
            jobId : jobId
        }         
        $.ajax({
            //ajax resopons and requst
        });
    }
}
</script>

var x=真;
函数jobResponse(res、jobId){
if(x){
x=假;
var frm_data={res:res,
jobId:jobId
}         
$.ajax({
//ajax解决方案和需求
});
}
}

在函数调用后禁用按钮,在ajax响应后启用

动态html

<button type="button"
href="javascript:;"
 class="btn btn-primary"
 id="saveJob"
   onclick="jobResponse('yes',<?php echo $myjobs['id_job'];?>)"> 
     Subimt </button>

如果有两个按钮,这是一样的吗?@LyndaCarter:是的,也一样
<button type="button"
href="javascript:;"
 class="btn btn-primary"
 id="saveJob"
   onclick="jobResponse('yes',<?php echo $myjobs['id_job'];?>)"> 
     Subimt </button>
<script type="text/javascript">
   function jobResponse(res, jobId) {
   var frm_data = {
  res: res,
  jobId: jobId
};
// disable the button
$(#saveJob).prop('disabled', true);
$.ajax({
  //ajax resopons and requst
  complete: function() {
    // enable the button if you need to
    $(#saveJob).prop('disabled', false);
  }
});