当inputfield未聚焦时删除建议

时间:2014-04-14 11:49:48

标签: javascript jquery autosuggest input-field

我正在创建一个自动完成搜索框。当用户在搜索字段外单击时,建议必须消失。

表单输入字段:

<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个字符或选择其中一个建议时使建议消失。

每当有人点击输入栏外(失去焦点)或没有选择建议时,我也需要fadeOut。 为了更清晰,一个图像:

Suggestions should go away when user clicks on red dot

例如,当用户点击红点附近的某处时,建议应该消失。 我不能让它工作,请帮忙吗?

1 个答案:

答案 0 :(得分:1)

这是问题的原因,

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

而你的方法是

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

缺少通过参数,因此无效。

将其更改为

onblur = "fill(this.value, 'naam')"