我正在创建一个自动完成搜索框。当用户在搜索字段之外单击时,建议必须消失。
表单输入字段:
<input type="text" name="naam_textbox" id="naam_textbox" class="field" autocomplete="off" onkeyup="suggest(this.value, 'naam');" onblur="fill();" />
javascript代码:
function suggest(inputString, veld){
if(veld == "naam") {
if(inputString.length < 2) {
$('#suggestions_naam').fadeOut();
} else {
$('#naam_textbox').addClass('load');
var dropdown = $( '<div class="suggestionsBox" id="suggestions_naam" style="display: none;"><div class="suggestionList" id="suggestionsList_naam"> </div></div>' );
if (inserted_naam == 0) {
dropdown.insertAfter( "#naam_textbox" );
inserted_naam = 1;
}
$.post("includes/homepage/autosuggest_naam.php", {queryString: ""+inputString+""}, function(data){
if(data.length >0) {
$('#suggestions_naam').fadeIn();
$('#suggestionsList_naam').html(data);
$('#naam_textbox').removeClass('load')
}
});
}
}
}
function fill(thisValue, veld) {
if(veld == "naam") {
$('#naam_textbox').val(thisValue);
setTimeout("$('#suggestions_naam').fadeOut();", 60);
}
}
只要 inputString 少于 2 个字符,或者选择了其中一个建议,“fadeOut”就会使建议消失。
每当有人在输入字段外单击(失去焦点)或未选择建议时,我也需要它来淡出。为了更清楚,一张图片:
例如,当用户单击红点附近的某处时,建议应该消失。我无法让它工作,请帮助?