web-dev-qa-db-ja.com

選択後、Jquery Autocompleteのテキストボックスをクリアする

ユーザーが選択を行ったら、Jquery Autocompleteを含むテキストボックスをクリアしたい。

私はフィールドをクリアしようとしました:

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

しかし、これは機能していません.jquery-1.6.4とjquery-ui-1.8.16を使用しています。

何か案は?

27
user1163513

select イベントは、フィールドが更新される前に発生します。イベントをクリアした後でフィールドが更新されないようにするには、イベントをキャンセルする必要があります。

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

Update:As T.J.以下で指摘されているように、 val() を経由する代わりに、value DOMプロパティを直接更新する方がわずかに高速です。

select: function(event, ui) {
    this.value = "";
    return false;
}
52

JQuery UIバージョン1.8.23を使用していますが、selectイベントでの$(this).val("");は機能しませんでしたが、これは機能しました:

$("selector").autocomplete({
    // ...
    close: function(el) {
        el.target.value = '';
    }
});
3
machineaddict

試す

select: function(event, ui) {
input.value='';
}
1
Mayank Pathak

これを試すこともできます:

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

選択すると、オートコンプリートでフィルタリングされたリストがすべて非表示になります。

0
InGeek