http://jqueryui.com/demos/autocomplete/#event-changejQuery UI自動完成:如何讓「更改」事件先發生?
這聽起來像change
事件應該是你選擇了一個項目後,火,而是好像火的onblur,但前提是輸入已改變。
select
OTOH發生得太早,它在輸入文本更新之前觸發。
我想在用戶選擇一個項目或者在用戶鍵入內容並切換焦點(就像通常的更改事件)之後立即進行輸入。
我該怎麼做?
http://jqueryui.com/demos/autocomplete/#event-changejQuery UI自動完成:如何讓「更改」事件先發生?
這聽起來像change
事件應該是你選擇了一個項目後,火,而是好像火的onblur,但前提是輸入已改變。
select
OTOH發生得太早,它在輸入文本更新之前觸發。
我想在用戶選擇一個項目或者在用戶鍵入內容並切換焦點(就像通常的更改事件)之後立即進行輸入。
我該怎麼做?
沒關係,想通了。我們可以欺騙:
select: function(event,ui) {
this.value=ui.item.value;
$(this).trigger('change');
return false;
}
更改事件手動設置,手動輸入的值,然後觸發,並返回false,以便它不打擾設置輸入兩次。
真棒的想法 – iMatoria
你讓我從精神崩潰中解脫出來!謝謝! –
該文檔指出新選定的值由ui.item引用。你能以這種方式獲得價值嗎?變更項目也會在關閉事件之後始終觸發,這是您提到的關於在onblur事件之前不會觸發的事件。 – Ben
@Ben:close事件在onblur之前被觸發。是的,我可以利用'ui.item',但是我必須處理兩種情況:用戶鍵入某些內容以引起更改,以及用戶選擇某個項目的方式不同(必須以不同方式訪問數據) 。除非我們欺騙......就像我一樣。但現在你提到它,數據似乎在關閉事件觸發之前得到更新*,所以我也可以在那裏觸發更改。 – mpen
它很有趣,它說:「當列表被隱藏 - 不必與改變一起發生。」因爲這兩個事件不會同時發生,即使它們都發生。 – mpen