2010-11-12 7 views
0

J'essaie d'insérer une balise avant et après la balise dojo filteringSelect que je viens de créer. Comment puis-je faire ça dans le dojo?Ajouter des balises span avant et après le dojo filteringSelectWidget

<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.3/dojo/dojo.xd.js"> 
    </script> 
    <script type="text/javascript"> 
     dojo.require("dijit.form.FilteringSelect"); 
     var filteringSelect = new dijit.form.FilteringSelect({ 
      id: "test" 
     }, "test"); 
    </script> 
    /> 
</head> 
<body> 
    <div aria-expanded="false" widgetid="test" role="combobox" class="dijit dijitReset dijitInlineTable dijitLeft dijitComboBox" id="widget_test" dojoattachevent="onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse" dojoattachpoint="comboNode" wairole="combobox" tabindex="-1"> 
     <div style="overflow: hidden;"> 
      <div role="presentation" class="dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonActive" dojoattachpoint="downArrowNode" wairole="presentation" dojoattachevent="onmousedown:_onArrowMouseDown,onmouseup:_onMouse,onmouseenter:_onMouse,onmouseleave:_onMouse"> 
       <div class="dijitArrowButtonInner"> 
        ? 
       </div> 
       <div class="dijitArrowButtonChar"> 
        ? 
       </div> 
      </div> 
      <div class="dijitReset dijitValidationIcon"> 
       <br> 
      </div> 
      <div class="dijitReset dijitValidationIconText"> 
       ? 
      </div> 
      <div class="dijitReset dijitInputField"> 
       <input aria-owns="test_popup" value="United States" aria-required="true" tabindex="0" id="test" aria-invalid="false" aria-autocomplete="list" aria-haspopup="true" role="textbox" autocomplete="off" class="dijitReset" dojoattachevent="onkeypress:_onKeyPress,compositionend" dojoattachpoint="textbox,focusNode" wairole="textbox" waistate="haspopup-true,autocomplete-list" type="text"><input name="" style="display: none;" type="text"> 
      </div> 
     </div> 
    </div> 
</body> 
</html> 

Répondre

1

Eh bien, si vous voulez absolument séparer la définition du FilteringSelect entre votre Javascript et HTML comme ça, je pense que vous pourriez faire quelque chose de laid comme:

var targetInput = dojo.byId("test"); 
var spanWrapper = dojo.create("span"); 

dojo.place(wrapperSpan, targetInput, "replace"); 
dojo.place(targetInput, wrapperSpan); 

dojo.require("dijit.form.FilteringSelect"); 

var filteringSelect = new dijit.form.FilteringSelect({ 
    id: "test" 
}, "test"); 
+0

Je suis consterné par ce que je viens posté, mais maintenant je ne pouvais pas penser à une autre façon. Il y avait une méthode wrap(), mais apparemment il n'y en a plus. – Frode

+1

Il est toujours là, juste difficile à trouver - http://dojotoolkit.org/api/dojo/NodeList.html Mais cela va imbriquer le widget dans une balise. Pour une balise avant et après, ne serait-ce que deux appels à dojo.create()? – peller

Questions connexes