2009-12-04 50 views
9

我正在使用dijit.form.FilteringSelect提供一種方法來從<中選擇值>。問題是,使用dojo時,返回標籤而不是s的值。如何獲得Dojo中FilteringSelect <select>的「值」?

例如:
<select name="test" dojoType="dijit.form.FilteringSelect">
<option value="1">One</option>
<option value="2">Two</option>
</select>

道場在返回文字「一」,如果選擇了該選項,代替值該選項,「1」。 「two」和「2」也是如此。

如果dojo從此元素中移除,則按預期返回值。

+0

你是什麼意思「道場的返回值」。或者你發佈這個表單?如果是這樣,通過一個普通的HTTP post或者dojo XHR請求,或者你是否試圖通過使用通過JS的dojo.getValue讀取值。更完整的代碼將需要幫助。 – Kitson 2009-12-04 22:51:17

+0

它的行爲與mctom987所說的完全相同。這可能是因爲Swigley編輯了這個問題。 – 2010-07-17 01:39:14

回答

4

我發現dojo創建了2個元素。一個使用名稱,其中包含使用元素的名稱的值,另一個使用包含該元素的ID的選項的標籤。由於我使用的是document.getElementById(),所以返回錯誤的值。使用名稱中的值提供正確的結果。

+0

是的,所以你需要使用的dijit的API,Swingley狀態。使用的document.getElementById或jQuery將產生不同的結果。 – Eric 2011-06-07 20:57:18

16

dojo這樣做的方法是使用dijit.byId('yourDijitId')。attr()。

要獲得價值,你想:

dijit.byId('yourDijitId').attr('value'); 

若要在過濾中顯示的值進行選擇:

dijit.byId('yourDijitId').attr('displayedValue'); 

編輯:ATTR()在1.5被棄用,at 1.5 and beyond, use get()

+3

attr爲現在已經過時。你應該使用get來代替。例如。 。dijit.byId( 'yourDijitId')得到( '值'); – voidstate 2011-09-08 10:04:40

+0

謝謝,我會更新我的答案。 – 2011-09-08 15:21:48

6

碰到同樣的問題,並提出了這個解決方案。

var optVal = dijit.byId("yourDijitId").item.value; 

的FilteringsSelect插件放入兩個displayValuevalue屬性中的「顯示值」。我發現獲得選項值的唯一方法是通過item屬性列出選定的選項屬性。

8

要得到價值dijit.form.FilteringSelect

dijit.byId('yourId').get('value'); 

要得到的displayedValue dijit.form.FilteringSelect

dijit.byId('yourId').get('displayedValue'); 
0

同胞的Google那裏試圖找到篩選中的SELECTED OBJECT選擇:

dijit.byId("yourDijitId").item 

引用選定的項目,以防您需要訪問該對象的其他屬性。

(帽尖與dijit.byId("yourDijitId").item.value Bitwize爲pointin向右方向)

相關問題