1

我有一个包含一些名称列表的元素,在它之上我有一个文本框。当用户开始输入时,将触发 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 的名称,但是当用户按下退格键以使文本框为空时,它不会搜索任何内容理解,但如果按下退格键,我希望调用以获取所有名称。

4

1 回答 1

1

首先检查输入的长度,然后在删除尾随和前导空格后检查长度。如果它们不同并且后者为空,则不要触发 AJAX 请求。

于 2013-09-23T05:44:32.697 回答