所以我有一个jQuery代码,用于将关键字发送到另一个页面。在该页面上,我有所有国家/地区的名称。我的代码工作得很好,我已经定义了我的函数,条件是如果输入文本的长度超过2然后在其中运行函数但是,我有问题这个例子当我写城市名称它工作得很好并且从ajax页面返回正确的数据我的问题是当用户想要用退格键或其他东西删除那个单词时我要删除所有先前的数据被发送到ajax页面但是由于我的条件它不起作用。
如何定义用户是否删除单词run my function?
这是我的代码:
var prevXHR = null; //global
$('.country').each(function() {
$(this).on('keyup', function(e) {
var _this = this;
var element = $(this).val().length;
if (e.which !== 0 &&
!e.ctrlKey && !e.metaKey && !e.altKey
){
if (element > 2) {
var val = $(this).val()
$(this).val(val)
prevXHR = $.ajax({
url: "ajaxpage.htm",
type: "get",
contentType: 'application/json; charset=utf-8',
data: {
key: $(this).val()
},
success: function(result) {
$(_this).closest(".search_div").find(".co").empty().html(result)
},
beforeSend: function(){
if(prevXHR && prevXHR.readyState != 20){
//before sending any new request neutralize any pending ajax call
prevXHR.abort();
prevXHR = null;
}
}
});
}
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div class="search_div">
<input type="text" value="" class="country" autocomplete="off" />
<div class="result"></div>
</div>
答案 0 :(得分:2)
在您的代码中,您已经在检查输入的长度是否大于2,然后继续进行-Wspec_diffs
调用。
之后只需添加ajax
部分。
else