仅键入

时间:2016-07-13 09:29:50

标签: jquery jquery-ui-autocomplete

我的应用程序中的文本框上有一个有效的自动完成功能。如果选择了建议,则应用程序会将表单发布到不同的页面(产品类别)。用户还可以键入不在自动填充建议中的内容,然后按Enter键。在这种情况下,应用程序将执行一些文本搜索。然而...

如果用户键入了与自动填充建议完全匹配的内容并按下输入,我仍然希望应用程序转到相应的URL。如何访问自动填充建议并搜索完全匹配?我在DOM上搜索了一个小时($(".searchTextBox").autocomplete("instance"))但找不到类似“建议集”的内容。

1 个答案:

答案 0 :(得分:0)

我通过声明一个全局来修复它(我知道的很糟糕,但在其他地方?)。

var autoCompleteResult = {};

然后在成功地将字典存储在全局变量中:

                success: function (data) {
                    autoCompleteResult = {};
                    var d = data.d;
                    for (var i = 0, len = d.length; i < len; i++) {
                        var val = d[i].split(';');
                        autoCompleteResult[val[0].toLowerCase()] = val[1];
                    }
                    response($.map(data.d, function (item) {
                        return {
                            label: item.split(';')[0],
                            val: item.split(';')[1]
                        }
                    }))
                },

然后,文本框上的onkeyup:

    if (autoCompleteResult !== null) {
    if (sender.value !== '') {
        var val = sender.value.toLowerCase();
        if (autoCompleteResult[val])
        {
            setPostBackUrl(autoCompleteResult[val]);
        }
    }
}

它就像一个魅力......