2013-03-11 54 views
0

我有一個典型的FilteringSelect,當我輸入它時可以工作,並且我可以從框中檢索值,這很好。但是,我試圖確定是否可以訪問它返回的項目列表。Dojo中的自動完成項目列表FilteringSelect

舉例來說,如果我有我的商店以下項目:

apple 
axe 
bananna 

我輸入「A」我想這讓我「蘋果」和「戰斧」的數組。

我假設這將在onKeyPress:函數的某個地方,我只是不熟悉的文檔。我查看了dijit.byId('selectId'),但從那裏我只是不知道API /文檔不夠好

回答

2

您應該看看API Documentation。在那裏你可以看到所有事件的概要。當你讀它,你應該來叫onSearch事件返回3個參數:

  • 查詢
  • 結果
  • 一些選項

所以,你要什麼onSearch事件並閱讀results參數。我做了一個JSFiddle向你展示一個例子。

另一種可能的解決方案是直接查詢商店,如果您不需要FilteringSelect,但是如果您只是希望基於查詢獲取項目列表,那麼這可能很有用。你也可以看到我的JSFiddle是如何工作的。

編輯:我只是注意到,你不能訪問API文檔。您應該真的嘗試其他瀏覽器,因爲API文檔包含很多有趣的東西,通常是事件/方法和屬性的參考。

1

我會看看Dojo API頁面中的以下屬性: https://dojotoolkit.org/api/(單擊框dijit /表格/ FilteringSelect來)

查詢

通過的dijit /表單定義上/ _SearchMixin

可以傳遞到存儲到最初篩選項目的查詢。 ComboBox會覆蓋對searchAttr的任何引用,並將其設置爲queryExpr,並將其替換爲用戶的輸入。

queryExpr

通過的dijit /表單定義/ _SearchMixin

這是用來指定查詢發送到數據存儲的基礎上,提供用戶所鍵入的。更改此表達式將修改結果是否僅爲完全匹配,「開始於」匹配等dojo.data查詢表達式模式。 $ {0}將被替換爲用戶文本。 *用於通配符。 $ {0} *手段 「開頭」,$ {0}是指 「包含」,$ {0}表示 「是」

searchAttr

通過的dijit /形式/ _SearchMixin

定義

搜索在數據存儲中的項目,其中該屬性(在項目)相匹配的用戶鍵入的內容

例如(沒有試過所以不知道這是否會成功與否): *使用ATTR到檢索或設置dojo屬性。

var srchItems = dijit.byId('resistForm').attr("searchAttr","a"); 
+0

https://dojotoolkit.org/api/我似乎只是得到風車,它不會超過這一點。我將不得不在另一臺機器上進行研究 – 2013-03-11 20:48:42

+0

這通常發生在舊的Web瀏覽器中。當他們看到Dojo時,大多數人都會嘔吐...... Firefox或Chrome總是比IE更好用。 – GoinOff 2013-03-11 20:53:18

+0

是的,終於可以訪問網站和繁榮,這是我需要的文檔 – 2013-03-12 13:26:20