Je tente de créer une forme assez complexe en utilisant les widgets dojo et dijit. Le formulaire a plusieurs «sections» qui permettent à l'utilisateur de joindre un objet existant (via une balise de sélection) ou de créer un objet entièrement nouveau dans le formulaire.Dojo/Dijit: Sélection dynamique de l'attribut requis
Mes entrées sont affichées sous forme de boutons radio conditionnels et manipulées via javascript. Ce que j'ai des problèmes à faire, est de faire conditionnellement widgets Dijit nécessaires selon que les entrées sont rendus ou non (qui lui-même dépend de quel bouton radio est sélectionné.
Mon html (en fait jsp)
<div>
<input id="useExisting" type="radio" name="radio" checked value="useExisting" onclick="renderExistingInput()" /> <label for="useExisting">Use Existing</label>
<input id="new" type="radio" name="radio" value="new" onclick="renderNewInputs()"/> <label for="new">Create New</label>
</div>
<br>
<div id="newInputs">
<div class="row">
<label class="label" for="newName">Name </label>
<span class="formInput"><input type="text" id="newName" name="newName" required="true" dojoType="dijit.form.ValidationTextBox"/></span>
</div>
<!-- More inputs with required="true"-->
<br>
</div>
<div id="existingInput>
<div class="row">
<label class="label" for="existingSelect">Existing Object </label>
<span class="formInput">
<select name="existingSelect" id="existingSelect" dojoType="dijit.form.Select">
<!--JSTL tags for compiling list of options -->
</select>
</span>
</div>
</div>
accompagnement des fonctions javascript:
function renderExistingInput() {
dojo.fx.wipeOut(getWipeArguments('newInputs')).play();
dojo.fx.wipeIn(getWipeArguments('existingInput')).play();
}
function renderNewInputs() {
dojo.fx.wipeOut(getWipeArguments('existingInput')).play();
dojo.fx.wipeIn(getWipeArguments('newInputs')).play();
}
function getWipeArguments(id) {
var wipeArgs = {
node : id
};
return wipeArgs;
}
le « flux » de base des interactions utilisateur est l'utilisateur clique sur un bouton radio, la div correcte rend à la suite de ce que je veux alors sont des entrées qui ne sont pas rendus à ne pas être pris en considération. Je ne suis pas en Je suis très sûr de savoir comment le faire. Est-il possible de manipuler cet attribut particulier directement via dojo? Ou y a-t-il une meilleure façon de le faire entièrement?
http://stackoverflow.com/questions/2978570/disable-dojo-validation-on-certain-fields m'a orienté dans la bonne direction, mais il semble encore comme une façon maladroite de faire les choses – BuffaloBuffalo