J'ai un formulaire en plusieurs parties qui prend les informations de base de l'utilisateur au début avec une vérification d'erreur jquery.validate pour voir si les champs ont été remplis et l'adresse e-mail est valide. Ci-dessous, il y a une série de cases à cocher (type_of_request) pour les nouveaux comptes, les comptes supprimés, les nouveaux logiciels, etc. qui affichent/cachent ces éléments lorsqu'ils sont cochés/décochés.jquery valider la saisie du formulaire si certaines cases sont cochées
Je souhaite valider les sections requises sur le formulaire UNIQUEMENT si l'item correspondant de type_of_request a été coché.
informations de mise à jour
C'est une bonne solution, mais semble faire tous les enfants de la section sélectionnée nécessaire.
Un scénario typique sera à la fois l'e-mail et d'autres case à cocher dans le type_request a été sélectionné:
<div id="email" style="display: block;"> // shown because other has been selected in the type request
<input id="email_new_account" class="sq-form-field" type="checkbox" value="0" name="q4836:q1"/> // not required
<input id="email_new_account_name" class="sq-form-field" type="text" name="q4836:q2"/> // if email_new_account checked then make required
<input id="email_new_account_access" class="sq-form-field" type="text" name="q4836:q2"/> // if email_new_account checked then make required
<input id="email_new_account_manager" class="sq-form-field" type="text" name="q4836:q3"/> // if email_new_account checked then make required
<input id="email_add_remove_access" class="sq-form-field" type="checkbox" value="0" name="q4837:q1"/> // not required
<input id="email_add_remove_account_name" class="sq-form-field" type="text" name="q4837:q2"/> // if email_add_remove_access checked then make required
<input id="email_add_access" class="sq-form-field" type="text" name="q4836:q2"/> // if email_add_remove_access checked then make required
<input id="email_remove_access" class="sq-form-field" type="text" name="q4837:q3"/> // if email_add_remove_access checked then make required
</div>
<div id="other" style="display: block;"> // shown because other has been selected in the type request
<input id="other_describe_request" class="sq-form-field" type="text" name="q4838:q1"/> // required because #other was checked in type request
<input id="other_request_justification" class="sq-form-field" type="text" name="q48387:q2"/> // required because #other was checked in type request
</div>
Lectures
J'ai examiné encore plus loin et a constaté que les éléments suivants peuvent être ajoutés à la classe des éléments d'entrée
class="{required:true, messages:{required:'Please enter
your email address'}}"
ou
class="{required:true, email:true, messages:{required:'Please enter
your email address', email:'Please enter a valid email address'}}"
mais quand j'ajoute
class="{required:'input[@name=other]:checked'}"
qui a été décrit sur le site http://jquery.bassistance.de, il ne fonctionne pas. Ai-je besoin de changer la syntaxe pour que cela fonctionne?
Vous ne savez pas pourquoi la coloration syntaxique ne semble pas fonctionner sur tout cela. – tvanfosson
merci pour cela, c'est un peu hors de ce que j'ai besoin donc j'ai mis à jour la question originale pour essayer d'être un peu plus clair. – justinavery
@tvanfosson: "la mise en évidence de la syntaxe ne semble pas fonctionner" - puisque vous avez commencé avec javascript, le/pense qu'il fait une regex. – nickf