2009-12-11 4 views
5

Necesito encontrar todos los widgets dijit.form.CheckBox dentro de un DIV y habilitarlos/deshabilitarlos todos. No puedo formular la consulta adecuada para ello.lista de consultas de casillas de verificación dijit dentro de un DIV

Intenté dojo.query("[dojoType~=dijit.form.CheckBox]") pero me da una lista vacía.

¿Cuál es la consulta adecuada para ello? ¿Puede la consulta DOJO devolver un WidgetSet o siempre devuelve ID de DOM? ¿Hay alguna forma diferente de consultar los widgets de dijit?

Respuesta

9

Trate dijit.findWidgets:

Buscar sub-árbol bajo la raíz, poniendo encuentran los widgets en outAry. ¿No de búsqueda para los widgets anidados (es decir, aparatos dentro de otros widgets)

+4

Thanx. '' dijit.findWidgets'' funciona. Aparte de esto, para filtrar los widgets de casilla de verificación, escribí algo como '' dojo.filter (widgets, función (w) {return w.declaredClass == 'dijit.form.CheckBox';}); ''. –

+0

Para dojo 1.8, dijit.findWidgets se puede encontrar en http://dojotoolkit.org/api/1.8/dijit/registry#findWidgets –

0

Ésta es 1.7> código y buscará recursivamente para los widgets en lugar de simplemente descendientes directos como es el caso de findWidgets

necesidad para requerir "dojo/query" y opcionalmente "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)); 
})); 

Este consultas comprueban casillas de verificación debajo de un ID de nodo dom myForm y bucles a través ésimo e resultados e imprime el elemento. Tenga en cuenta que esto solo proporciona elementos de dom node en el conjunto de resultados, por lo que si desea obtener los dijits, puede usar registry.byId(...)

Cuestiones relacionadas