2017-01-21 142 views
4

我正在點擊一個按鈕,並調用函數...當我點擊按鈕兩次如何避免點擊按鈕的重複請求兩次

數據在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> 

我怎麼能解決這個問題..?

回答

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> 
+0

如果有兩個按鈕,這將是相同的..? –

+0

@LyndaCarter:是的,做同樣的事情 –

3

你可以像禁用當按鈕第一次用戶點擊像下面

onclick="this.disabled='true';jobResponse('yes',<?php echo $myjobs['id_job'];?>)"> 
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

你可以在這裏遵循一個簡單的一招。最初定義布爾型變量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> 
3

殘疾人COLL後的按鈕的功能和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); 
    } 
}); 

}

後啓用

我希望這可以幫助你。