我点击一个按钮并调用一个功能...当我点击按钮两次
数据插入两次
在mysql数据库中我怎么能避免它在我的情况下..?
这是我的动态HTML:
<button type="button"
href="javascript:;"
class="btn btn-primary"
onclick="jobResponse('yes',<?php echo $myjobs['id_job'];?>)">
Subimt </button>
这是我使用ajax调用的函数:
<script type="text/javascript">
function jobResponse(res,jobId){
var frm_data = { res : res,
jobId : jobId
}
$.ajax({
//ajax resopons and requst
});
}
</script>
我该如何解决这个问题..?
答案 0 :(得分:4)
传递按钮引用并禁用它,稍后当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>
答案 1 :(得分:3)
你可以像第一次用户点击按钮时那样禁用
onclick="this.disabled='true';jobResponse('yes',<?php echo $myjobs['id_job'];?>)">
答案 2 :(得分:3)
你可以使用这样的标志
<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>
答案 3 :(得分:3)
你可以在这里遵循一个简单的技巧。最初定义布尔类型变量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>
答案 4 :(得分:3)
在函数调用后禁用按钮,并在ajax响应后启用
动态html
<button type="button"
href="javascript:;"
class="btn btn-primary"
id="saveJob"
onclick="jobResponse('yes',<?php echo $myjobs['id_job'];?>)">
Subimt </button>
Ajax功能
<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);
}
});
}
我希望这会对你有所帮助。