2016-04-05 8 views
0

Ich bin mit Dojo und ich brauche für alle erforderlichen Felder in DOM abzufragen und einen * neben jedem dijit Label in einem TableContainer hinzufügen Ich habe versuchtdojo.query für Pflichtfelder

dojo.query("[required]") 

aber es gibt einen leeren NodeList offenbar das gewünschte Attribut auf eine andere Eigenschaft in der Laufzeit gerendert wird

+0

jsfiddle erstellen ... –

Antwort

1

Sie können alle Widgets, für die eine Eigenschaft erforderlich ist, direkt mit dijit/registry überprüfen, ohne das DOM abzufragen.

Beispiel:

require(['dijit/registry'], function(registry){ 
    var widgets = registry.toArray(); 
    widgets.forEach(function(widget){ 
     if(widget.required){ 
      // your code here 
      } 
    }); 
}); 
1

Wenn Sie dijit/Formular-Widgets verwenden, können Sie versuchen, für ‚aria-required‘

dojo.query("[aria-required]") 
suchen

aber es funktioniert nicht für alle Widgets (wie Textarea). Ich würde Sie gerne nutzen, um etwas vorschlagen:

dojo.query("[widgetid]").forEach(//scope all widgets on page 
    function(item){ 
    var widget = dijit.getEnclosingWidget(item); 
    if(widget.required){ 
     // your code here 
    } 
    } 
) 

Und natürlich sollte ein besseres Verhalten Widgets werden auf benutzerdefinierten Klasse basiert abzufragen nicht für alle Widgets auf Seite aussehen.

Verwandte Themen