J'utilise MVC 3 avec le rasoir comme moteur de vue et la validation client discrète activée.Activer la validation dans MVC 3 Razor
J'essaye de créer un formulaire où l'utilisateur a un groupe de boutons radio pour choisir leur méthode préférée de contact - téléphone ou email. En fonction de l'option sélectionnée, je souhaite afficher la zone de texte appropriée, mais également activer/désactiver le validateur requis pour la zone de texte appropriée.
Mon balisage ressemble à ceci au moment (débutant avec MVC si s'il vous plaît signaler toute erreur évidente):
<div id="prefferedContact">
<p>Preferred Contact Method *</p>
<input type="radio" id="contactMethodEmail" name="PreferredContactMethod" value="email" @if (Model.PreferredContactMethod != "phone"){<text>checked="checked"</text>} /> <label for="contactMethodEmail">by email</label>
<input type="radio" id="contactMethodPhone" name="PreferredContactMethod" value="phone" @if (Model.PreferredContactMethod == "phone"){<text>checked="checked"</text>} /> <label for="contactMethodPhone">by phone</label>
</div>
<div id="contactMethodDetails" class="formItem">
<div id="emailAddressBox">
@Html.LabelFor(x => x.Email, "Email address")
@Html.TextBoxFor(x => x.Email, new { @class = "textbox" })
</div>
<div id="phoneNumberBox">
@Html.LabelFor(x => x.PhoneNumber, "Phone number")
@Html.TextBoxFor(x => x.PhoneNumber, new { @class = "textbox" })
</div>
</div>
</div>
</div>
Il y a une fonction jquery qui ajoute un événement onclick aux boutons radio pour basculer entre les deux cases en fonction de la valeur sélectionnée.
Le modèle - pour ces champs spécifiques - n'a pas de validation requise pour le moment mais est correct. En outre, la validation travaille sur d'autres domaines comme prévu
je vraiment juste besoin d'avoir une idée de:
(a) est-il possible de passer la validation et hors
(b) est l'impact du ModelState validation en tout cas (ou dois-je le personnaliser)
J'avais aussi pensé à avoir une seule zone de texte pour les données de contact, mais je voulais avoir une validation d'expression régulière pour l'email et pour le numéro de téléphone séparément. Si je devais avoir une seule zone de texte, pourrais-je changer les règles de validation sur la zone de texte en fonction de l'option sélectionnée ???
Espérons que c'est assez clair avec suffisamment d'informations.
Merci
Joel