Я использую MVC 3 с бритвой в качестве движка просмотра и включенной ненавязчивой проверкой клиента.
Я пытаюсь создать форму, в которой у пользователя есть группа переключателей для выбора предпочтительного метода контакта- либо по телефону, либо по электронной почте.В зависимости от выбранной опции, я хочу показать соответствующее текстовое поле, но затем также включить / отключить необходимый валидатор для соответствующего текстового поля.
В данный момент моя разметка выглядит примерно так (Просто начните с MVC, поэтому, пожалуйста, укажите на любые очевидные ошибки):
<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>
Есть некоторая функция jquery, которая добавляет событие onclick кпереключатели для переключения между двумя полями в зависимости от выбранного значения.
Модель - для этих конкретных полей - на данный момент не имеет обязательной проверки, но имеет обязательную привязку.Кроме того, валидация работает в других полях, как и ожидалось
Мне просто нужно понять:
(а) можно ли включать и выключать валидацию(b) влияет ли это на проверку ModelState в любом случае (или мне нужно ее настроить)
Я также думал о наличии одного текстового поля для контактных данных, но я хотел иметь проверку регулярного выражения дляадрес электронной почты и номер телефона отдельно.Если бы у меня было одно текстовое поле, мог бы я переключить правила проверки в текстовом поле в зависимости от выбранной опции ???
Надеюсь, это достаточно ясно и достаточно информации.
Спасибо
Joel