选择jQuery UI自动完成后清除表单字段
我们正在使用JQuery UI自动完成,并且在查询完成后清除包含搜索词的文本框时出现问题。这里是我们的jQuery代码:选择jQuery UI自动完成后清除表单字段
$(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脚本调试器。我看到这个堆栈溢出帖子:Clear form field after select for jQuery UI Autocomplete其中说问题的解决方案是从JQuery select函数返回false,但这并没有帮助。任何人都有如何解决这个问题的建议?
我发现解决这个问题是使用旧的JQuery 1.4.1 DLL与新的jQuery UI的dll一起的唯一途径,版本1.8.11,我认为有一个,但在1.4.1版本后的JQuery DLL导致这个问题。如果是这样,也许未来的版本将解决它。
使用jQuery 1.8.2和jqueryUI 1.9.0,在最上面的回答中提到的'event.preventDefault()'技巧对我来说是神奇的。 http://*.com/a/5648954/1063730 – yoshi 2012-11-30 12:22:10
$(this).val('');
,而不是
$(this).val() = "";
谢谢 - 我应该提到我已经在帖子前尝试过,结果是一样的。 – 2011-03-21 20:01:59
奇怪的是,这对我有用,我不知道'val()'是如何工作的,但显然不像我想的那么简单。 – 2014-10-17 16:23:01
使用jQuery 1.5.1和jQuery的UI 1.8.10,我以下工作:
select: function (event, ui) {
event.preventDefault() // <===
window.location.href = ui.item.value;
$(this).val('');
}
是的,它的'PreventDefault'在这里做的伎俩......我很想知道它应该是什么“泡沫”。 – isNaN1247 2012-06-01 17:45:18
preventDefault也帮助了我。谢谢! – 2013-03-07 13:40:32
这个工作对我来说...
jQuery('.SELECETOR'). autocomplete({
....
....
}).on("autocompleteselect", function(event, ui) {
jQuery(this).val('');
});
这个工作对我来说:
jQuery('.SELECTOR'). autocomplete({
// Code
}).on("autocompleteselect", function(event, ui) {
jQuery(this).val('');
});
我不相信这是官方的jQueryUI自动完成插件(http://jqueryui.com/demos/autocomplete/),因为'parse'选项。是这样吗?如果是这样,你的问题应该可能链接到正确的插件。 – 2011-03-22 02:37:20
@Andrew,感谢您的评论,但我认为它是官方的JQueryUI。我们从JQuery UI站点下载了名为jquery-ui-1.8.5.custom.min.js文件的文件。这个文件有点过时,目前的版本是jquery-ui-1.8.11.custom.min.js,我也下载了它,用最新版本的JQuery尝试过,然后Autocomplete对我来说不起作用。所有。 – 2011-03-22 12:49:01
好吧,jQueryUI小部件上没有'parse'选项(据我所知)。您期望从该选项中获得的功能可能会导致您遇到一些问题(我知道的那种远射)。 – 2011-03-22 13:37:22