2011-06-20 8 views
14

http://jqueryui.com/demos/autocomplete/#event-changejQuery UIのオートコンプリート:以前の 'change'イベントを取得するにはどうすればいいですか?

changeイベントは、アイテムを選択した後に起動するようになって、代わりにのonblur発射するようだが、入力が変化した場合にのみされるように聞こえます。

select OTOHが早すぎると、入力テキストが更新される前に起動します。

ユーザーが項目を選択するとすぐに入力を行うか、ユーザーが何かを入力してフォーカスを切り替えると(通常の変更イベントのように)、入力で何かしたいと思います。

どうすればいいですか?

+0

ドキュメントには、ui.itemによって新たに選択された値が参照されることが記載されています。あなたはそのように価値を得ることができますか?変更項目は、onblurイベントまで発砲しないことについて述べたものであるcloseイベントの後にも常に発生します。 – Ben

+0

@Ben:closeイベントはonblurの前に発生します。はい、私は 'ui.item'を利用することができましたが、ユーザーが何らかの変更を加えて項目を選択する2つのケースを扱わなければなりません(別々にデータにアクセスする必要があります) 。私が騙していない限り...私のように。しかし、ここで言及すると、データはcloseイベントが発生する前に更新されているように見えるので、そこで変更をトリガーすることもできます。 – mpen

+0

これは面白いことですが、「リストが隠されているときは、変更と一緒に発生する必要はありません」これらの2つのイベントは、両方が発生しても同時に発生しないためです。 – mpen

答えて

20

気にしないでください。

select: function(event,ui) { 
    this.value=ui.item.value; 
    $(this).trigger('change'); 
    return false; 
} 

は、変更イベントを手動手動入力の値、その後、トリガーを設定し、それが二回入力を設定し気にしないようにfalseを返します。私たちは、カンニングすることができます。

+0

素晴らしい考え – iMatoria

+0

あなたは神経質な内訳から私を救った!ありがとうございました! –

関連する問題