2009-12-11 2 views
5

DIV内のすべてのdijit.form.CheckBoxウィジェットを見つけ出し、それらをすべて有効/無効にする必要があります。私はそれに対して適切な質問を作成することができません。DIV内のdijitチェックボックスのクエリリスト

私はdojo.query("[dojoType~=dijit.form.CheckBox]")を試しましたが、それは私に空のリストを与えます。

適切なクエリは何ですか? DOJOクエリがWidgetSetを返すことはできますか、それともいつもDOM IDを返しますか? dijitウィジェットを照会する方法はいくつかありますか?

答えて

9

dijit.findWidgetsをお試しください:

ルートの下に検索サブツリー、outAryに たウィジェットを置きます。ネストされたウィジェットの 検索(すなわち、ウィジェット他のウィジェット内部 )

+4

Thanxを使用することができます。 '' dijit.findWidgets''が動作します。このチェックボックスウィジェットを除外するために、私は '' dojo.filter(widgets、function(w){return w.declaredClass == 'dijit.form.CheckBox';}); ''のような記述をしました。 –

+0

dojo 1.8の場合、dijit.findWidgetsはhttp://dojotoolkit.org/api/1.8/dijit/registry#findWidgetsにあります。 –

0

は、これは1.7>のコードではなく、findWidgets

必要の場合のように、ウィジェットだけではなく、直接の子孫のために再帰的に検索します"dojo/query"および任意"dijit/registry"

var checkboxes = query("input[type=checkbox]:checked", "myForm"); 
checkboxes.forEach((function (checkbox) { 
    //dom node 
    console.log(checkbox); 

    //dijit 
    console.log(registry.byId(checkbox.id)); 
})); 

を必要とするために、このクエリは、DOMノードID myFormの下のチェックボックスをチェックし、目をループ結果が出力され、要素が出力されます。これは、結果セットにdomノード要素を与えるだけであるので、dijitsを取得する場合は、registry.byId(...)

関連する問題