我有一个元素,其中包含一些名称的列表,在它上面我有一个文本框。当用户开始键入时,将触发ajax调用并获取具有匹配关键字的名称。如果只有一个空格,我需要停止任何调用,但如果文本框为空而没有任何空格,则列表应填充所有名称。
HTML是:
<input type="text" onkeyup="startTSearch(); return false" class="t_search_placeholder" id="t_Search" placeholder="Search here" />
JS就是这样:
function startTSearch(){
var list = $('.teachersList');
var q = document.getElementById('t_Search').value;
q = q.trim();
if(q == ""){}else{
list.html("");
$('.t_loader_msg').css('display','block');
$('.t_loader_msg').css('font-weight','bold');
document.getElementById('load_MSG').innerHTML = "RETRIEVING SUGGESTIONS...";
var postData = {flag:1,q:q};
$.ajax({
type: 'POST',
dataType: 'json',
url: 'global.php',
data: postData,
beforeSend:function(){
},
success:function(data){
if(data.errorList == ""){
if(data.hasResult == 0){
document.getElementById('load_MSG').innerHTML = "NO RESULTS FOUND.";
} else if(data.hasResult == 1){
document.getElementById('load_MSG').style.display = "none";
list.hide().html(data.teacherList).slideDown(300);
}
}
},
error:function(){
}
});
}
}
当用户按下空格时,上面的代码不会触发调用但是如果用户搜索了一些初始值,比如说A,那么它会用A搜索所有名称,但是当用户按下退格键以使文本框为空时,搜索我理解的没什么,但我希望在按下退格键时调用所有名称。
答案 0 :(得分:1)
首先检查输入的长度,然后在删除尾随和前导空格后检查长度。如果它们不同而后者为空,则不要激活AJAX请求。