2010-12-11 44 views
4

如何使用ExtJs編寫簡單的自動完成功能?如果該字段有地址,他們開始輸入st它應該成爲街道等使用ExtJs自動完成文本字段

+3

我寫這篇文章的評論,而不是因爲答案我沒有時間給你測試代碼,只是一個草圖。聽起來,這可以通過配置屬性hideTrigger:true(使其看起來像一個普通的TextField)和typeAhead:true(它提供了一種建議機制)以及一個用於keyup事件的監聽器的ComboBox來完成解析字符串(getValue())並查看最後一個單詞是否與某個給定字典匹配,並相應地用任何建議填充ComboBox。 – 2010-12-11 04:40:07

+0

@fastcodejava可以發佈你的完整代碼嗎? – freestyle 2013-07-11 06:56:59

回答

14

正如Mitch在他的評論中所建議的那樣,您可以使用Ext.form.Combobox(正確配置)來執行此操作。你不需要綁定任何東西到鍵盤事件,因爲Combobox會爲你處理。

這是應該工作的配置的開始。您需要提供一個適當的Ext.data.Store(或其子類),以及一些其他配置值(displayField,valueField,queryParam等)。所有必要的東西在API文檔相當有據可查)

MyTypeahead = new Ext.form.ComboBox({ 
    triggerAction:'all', 
    typeAhead:true, 
    mode:'remote', 
    minChars:2, 
    forceSelection:true, 
    hideTrigger:true 
}); 
+1

在「123主要街道」這樣的輸入應該觸發「辭典」在字典中但是「123主要街道」沒有的建議「123主要街道」的印象,據我所知,ComboBox中沒有自動機制。雖然我從來沒有使用過queryParam,所以我可能會錯。無論如何,我給+1。 – 2010-12-11 20:27:50

+1

啊,我沒有這樣讀 - 我的回答只是一個簡單的強制選擇typeahead領域。如果「123主要街道」作爲選項存在,「123主要街道」會建議「123主要街道」。 queryParam只是命名用於進行遠程查詢的請求變量。 – timdev 2010-12-11 21:01:22

+0

米奇對我所尋找的是正確的。我仍然爲+1付出了努力並接受了答案。 – fastcodejava 2010-12-12 10:11:50

相關問題