由于用户名的最大长度可以是 18,所以我没有进行 ajax 调用term.length>2 && term.length < 18
,到目前为止还不错,但是当我输入这样的内容时,它会继续进行 ajax 调用
ex : testing for mentions : @name and now spaces!!! ;
这是我正在使用的 js 代码。
$("#input").load().bind("blur keydown keypress keyup",function(){
var t = $("#input").val();
suggest(t);
function split(val){
return val.split(/@\s*/);
}
function extractLast(term){
return split(term).pop();
}
function suggest(inputString){
if(inputString.indexOf("@")>=0){
term=extractLast(inputString);
if(term.length>2 && term.length < 18){
$('#postInput').addClass('load');
var data = 'name=' + term;
$.ajax({
type:"POST",
url:"http://site.com/ajax/mentions",
data:""+term+"",
dataType:"html",
success:function(data){
if(data.length>0){$('#suggestions').fadeIn();
$('#suggestionsList').html(data);
$('#input').removeClass('load');}
}
});
}
else {
$('#suggestions').fadeOut();
}
}
}
});