29

一旦用户做出选择,我想清除具有 Jquery Autocomplete 的文本框。

我试图通过以下方式清除该字段:

select: function(event, ui) {
   $(this).val('');
}

但这不起作用。我使用的是 jquery-1.6.4 和 jquery-ui-1.8.16。

有任何想法吗?

4

4 回答 4

57

select事件在字段更新之前发生。您必须取消该事件以避免在清除该字段后更新该字段:

select: function(event, ui) {
    $(this).val("");
    return false;
}

更新:正如 TJ 在下面指出的那样,value直接更新 DOM 属性而不是通过val()会稍微快一些:

select: function(event, ui) {
    this.value = "";
    return false;
}
于 2012-07-23T07:18:28.650 回答
6

我正在使用 jQuery UI 版本 1.8.23 并且$(this).val("");on selectevent 对我不起作用,但这确实:

$("selector").autocomplete({
    // ...
    close: function(el) {
        el.target.value = '';
    }
});
于 2016-07-02T12:59:38.133 回答
1

尝试

select: function(event, ui) {
input.value='';
}
于 2012-07-23T07:16:35.600 回答
0

你也可以试试这个:

$("#your_autocomplete_sub_listview_id").children().addClass("ui-screen-hidden");

这将在选择它时隐藏所有自动完成过滤列表。

于 2014-11-12T22:23:24.887 回答