2010-03-30 4 views
0

J'ai une table (dans un formulaire) remplie de boutons radio (avec un bouton pour chaque valeur dans une collection). Si la collection est vide, rien n'apparaît dans la table (ce qui est bien). (J'utilise Struts2)Validations Jquery sur formulaire sans champs

Mon problème vient lors de la validation que l'utilisateur a sélectionné l'un de ces boutons radio lorsque le bouton Soumettre est cliqué. J'utilise les validations de JQUERY, et cela fonctionne assez bien SAUF s'il n'y a pas de boutons radio à sélectionner (la collection est vide).

$('#startProcessForm').validate({ 
    rules: { 
     selectedProcess: { 
      required: true 
     } 
    }, 
    messages: { 
     selectedProcess: "Please select a process to start." 
    } 
}); 

Si la liste est vide, aucun champ (bouton radio ou autre) nommé "selectedProcess" ne s'affiche. Donc ma question est la suivante:

Comment puis-je faire exister "selectedProcess" ET échouer la validation "required: true" s'il n'y a rien dans la collection?

Je pensais pouvoir créer une balise vide du même nom (selectedProcess) si la collection est vide? Voici ce que je suppose que fonctionnerait, mais ne semble pas:

<s:if test="processes != null && !processes.isEmpty()"> 
    <s:iterator value="processes" status="processesStatus"> 
     <tr> 
      <td><s:radio name="selectedProcess" list="{name}"></s:radio></td> 
     </tr> 
    </s:iterator> 
</s:if> 
<s:else> 
    <tr> 
     <td><a name="selectedProcess"></a></td> 
    </tr> 
</s:else> 

Merci!

Répondre

2

vous pourriez faire <input type="hidden" name="selectedProcess" value="-1"> s'il n'y a pas de valeurs (au lieu de votre <a name>)

+0

Grand - merci! Malheureusement, -1 comme valeur n'a pas échoué à la validation. Cependant, j'ai juste essayé [value = ""], et ça marche très bien. Merci oedo! – jcovert

Questions connexes