选择jQuery UI Autocomplete后清除表单字段

Rus*_*ark 6 jquery jquery-ui autocomplete

我们正在使用JQuery UI Autocomplete,在查询完成后,我在清除包含搜索词的文本框时遇到问题.这是我们的JQuery代码:

$(document).ready(function () {
        $("form#search input#term").autocomplete({
            source: '<%= Url.Action("Display", "Search") %>',
            delay: 200,
            minLength: 3,
            parse: function (data) {
                var array = new Array();
                for (var i = 0; i < data.length; i++) {
                    array[array.length] = { data: data[i], value: data[i], result: data[i].link };
                }
                return array;
            },
            select: function (event, ui) {
                window.location.href = ui.item.value;
                $(this).val() = "";
                return false;
            }
        });
    });
Run Code Online (Sandbox Code Playgroud)

这段代码在Firefox中工作正常,但是IE 8抛出一个异常并给出一个对话框,询问我是否要使用IE Script Debugger.我看到这个Stack Overflow帖子:在选择jQuery UI Autocomplete之后清除表单字段,它说问题的解决方案是从JQuery选择函数返回false,但这没有帮助.有人建议如何解决这个问题?

Rik*_*Rik 10

使用Jquery 1.5.1和JQuery-ui 1.8.10,以下内容适用于我:

select: function (event, ui) {
                event.preventDefault() // <===
                window.location.href = ui.item.value;
                $(this).val('');                
            }
Run Code Online (Sandbox Code Playgroud)


Rus*_*ark 1

我发现解决此问题的唯一方法是使用旧的 JQuery 1.4.1 dll 和新的 JQuery UI dll(版本 1.8.11),我认为版本 1.4.1 之后的 JQuery dll 中存在一个“但是”这个问题。如果是这样,也许未来的版本会修复它。