0

オートコンプリート検索ボックスを作成しています。ユーザーが検索フィールドの外をクリックすると、候補が消える必要があります。

フォーム入力フィールド:

<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"> &nbsp; </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 つが選択されたときに候補を非表示にします。

誰かが入力フィールドの外側をクリックする (フォーカスを失う) か、提案を選択しないときはいつでも、フェードアウトする必要もあります。より明確にするために、画像:

ユーザーが赤い点をクリックすると、提案が消えるはずです

たとえば、ユーザーが赤い点の近くのどこかをクリックすると、提案は消えます。私はそれを働かせることができません、助けてください。

4

1 に答える 1

1

ここに問題の原因があります、

onblur="fill();" //no parameters

一方、あなたの方法は

function fill(thisValue, veld) {   //2parameters
    if(veld == "naam") {
        $('#naam_textbox').val(thisValue);
        setTimeout("$('#suggestions_naam').fadeOut();", 60);
    }
}

MISSING TO PASS PARAMETERSため、機能していませんでした。

だからそれを次のように変更します

onblur = "fill(this.value, 'naam')"
于 2014-04-14T11:52:37.593 に答える