2009-12-04 15 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」を返す「1」です。 "two"と "2"についても同様です。

この要素からdojoが削除された場合、期待どおりの値が返されます。

+0

あなたは「道場が値を返している」何を意味しています。またはこのフォームを投稿していますか?もしそうなら、通常のHTTPポストやDojo XHRリクエストを介して、あるいはJSを介してdojo.getValueを使って値を読み込もうとしていますか。より完全なコードセットが必要になります。 – Kitson

+0

mctom987と同じように動作します。 Swigleyが質問を編集したためかもしれません。 –

答えて

4

私はdojoが2つの要素を作成することを発見しました。 1つは、要素のNAMEを使用する値を含む名前を使用するものと、その要素のIDを使用するオプションのラベルを含むものです。 document.getElementById()を使用していたので、これは間違った値を返していました。名前の値を使用すると正しい結果が得られます。

+0

はい、Swingleyが示すdijit APIを使用する必要があります。 document.getElementByidまたはjqueryを使用すると、異なる結果が得られます。 – Eric

16

これを行うdojoの方法は、dijit.byId( 'yourDijitId')。attr()を使用することです。

値を取得するには、希望:

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

がフィルタリングに表示される値は、選択を取得するには:

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

EDIT:ATTR()は1.5で廃止されました、at 1.5 and beyond, use get()

+3

attrは廃止予定です。代わりにgetを使うべきです。例えば。 dijit.byId( 'yourDijitId')。get( 'value'); – voidstate

+0

ありがとうございます、私は私の答えを更新します。 –

6

同じ問題に遭遇し、この解決策を考え出しました。

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

FilteringsSelectウィジェットは両方displayValuevalue特性における「表示値を」置きます。私がオプション値を取得するために見つけた唯一の方法は、選択されたオプションのプロパティをリストするitemプロパティを調べることです。

8

dijit.form.FilteringSelect

の価値
dijit.byId('yourId').get('value'); 

dijit.form.FilteringSelect見つけようとしてそこに仲間のGooglerのために

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

のdisplayedValueを取得するには取得するにはFilteringSelectで選択されたオブジェクト:

dijit.byId("yourDijitId").item 

は、オブジェクトの他のプロパティにアクセスする必要がある場合に備えて、選択したアイテムを参照します。

(帽子の先端がdijit.byId("yourDijitId").item.valueで右方向へpointinためBitwizeする)

関連する問題