我有一個帶有ajax調用(填充其他一些輸入字段)模糊和按鈕與點擊事件(一些點擊事件設置輸入字段爲空字符串)的輸入字段。 例如,如何在使用jQuery事件時避免ajax異步
$("#input_field1").on('blur', function() {
$.ajax({
//async:false,
method: "GET",
url: "my_ajax.php",
cache: false,
dataType: "json",
data: { data1: $("#input_field1").val()},
success: function(result){
$("#some_other_input").val(result.data2);
}
})
});
$("#button1").on('click', function() {
$("#input_field1").attr("readonly", true);
var form = $("#my_form");
form.validate().resetForm();
form[0].reset();//form contains #some_other_input
});
當該輸入場被聚焦,然後上的任何按鈕用戶點擊,則觸發事件模糊,當然,之後適當點擊事件。 如果我不使用async:false,在點擊事件處理完成後,ajax將填充這些輸入字段,其他輸入將被填充而不是空的。
閱讀有關async:false應該如何避免總是,我需要一種方式讓我的點擊事件等到ajax完成,如果在那個時候有ajax調用。
首先一個在AJAX代表了異步。你到底想做什麼? – Walk
你需要*擁抱*異步,而不是與它戰鬥。這可能意味着重新考慮事件如何一起工作,或者可能在處理時禁用按鈕,或者這可能意味着您需要建立一個「請稍等」的樣式塊。 –
處理ajax時禁用按鈕將導致點擊事件不能觸發。我真的需要用戶能夠在input_field1填充後立即點擊按鈕。 –