オートコンプリート検索ボックスを作成しています。ユーザーが検索フィールドの外をクリックすると、候補が消える必要があります。
フォーム入力フィールド:
<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);
}
}
「fadeOut」は、inputString が 2 文字未満になるか、候補の 1 つが選択されたときに候補を非表示にします。
誰かが入力フィールドの外側をクリックする (フォーカスを失う) か、提案を選択しないときはいつでも、フェードアウトする必要もあります。より明確にするために、画像:
たとえば、ユーザーが赤い点の近くのどこかをクリックすると、提案は消えます。私はそれを働かせることができません、助けてください。