2012-07-23 18 views
20

ユーザが選択をしたら、Jqueryオートコンプリートを持つテキストボックスをクリアしたい。選択後のJqueryオートコンプリートのテキストボックスをクリアする

私はしてフィールドを消去しようとしました:

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

しかし、これはworking.Iはjqueryの-1.6.4とjQuery-UI-1.8.16を使用していません。

すべてのアイデア?

+0

私はあなたのコードは「選択」と言うに気づきました。ソリューションを提供する前に、それがテキストボックスであり、選択ボックスではないことを明確にしたいだけです。 – CoreyRS

+1

@CoreyRS: 'select'は、ユーザがオートコンプリートのいずれかを選択したときにイベントをフックするために' autocomplete'に渡すオプションの名前です。 –

答えて

45

selectイベントが発生してください。あなたはそれをクリアした後に更新されたフィールドを避けるために、イベントをキャンセルする必要があります:

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

更新:をT.J.としてそれは代わりにval()を経由の直接value DOMプロパティを更新するために、わずかに速いですが、以下の指摘:

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

+1 [例]のように 'this.value =" ";'(http://jqueryui.com/demos/autocomplete/#multiple-remote)。 –

1

は、フィールドが更新される前に

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

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

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

をそれ。私はselectイベントでのjQuery UIのバージョン1.8.23と$(this).val("");を使用してい

2

は私のために働いていないが、これはやった:

$("selector").autocomplete({ 
    // ... 
    close: function(el) { 
     el.target.value = ''; 
    } 
}); 
関連する問題