我们正在使用JQuery UI自动填充,并且在查询完成后我在清除包含搜索词的文本框时遇到问题。这是我们的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;
}
});
});
此代码在Firefox中运行良好,但IE 8抛出异常并提供一个对话框,询问我是否要使用IE Script Debugger。我看到了这个Stack Overflow帖子:Clear form field after select for jQuery UI Autocomplete,它说问题的解决方案是从JQuery select函数返回false,但这没有帮助。有人建议如何解决这个问题吗?
答案 0 :(得分:10)
使用Jquery 1.5.1和JQuery-ui 1.8.10,以下内容适用于我:
select: function (event, ui) {
event.preventDefault() // <===
window.location.href = ui.item.value;
$(this).val('');
}
答案 1 :(得分:2)
$(this).val('');
而不是
$(this).val() = "";
答案 2 :(得分:1)
我发现解决这个问题的唯一方法是使用旧的JQuery 1.4.1 dll以及新的JQuery UI dll,版本1.8.11,我认为有一个但是在版本1.4之后的JQuery dll .1导致此问题。如果是这样,未来的版本可能会修复它。
答案 3 :(得分:0)
这适合我...
jQuery('.SELECETOR'). autocomplete({
....
....
}).on( "autocompleteselect", function( event, ui ) {
jQuery(this).val('');
});
答案 4 :(得分:0)
这对我有用:
jQuery('.SELECTOR'). autocomplete({
// Code
}).on( "autocompleteselect", function( event, ui ) {
jQuery(this).val('');
});