我有一个带有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填充后立即点击按钮。 –