Обновление: я спрашиваю, возможно ли удалить правила проверки, выведенные из Атрибутов в полях моей модели представления, ТОЛЬКО на стороне клиента.
-
IЯ переключаю отображение определенных полей, когда выбор сделан из выпадающего списка.Мне нужно также включить проверку.
ViewModel.cs:
public int ddlTypeID { get; set; }
public Dictionary<int, string> ddlTypes { get; set; }
[Required(ErrorMessageResourceName = "msgRequired",
ErrorMessageResourceType = typeof(Resources.Globals))]
public DateTime firstDate {get; set;}
[Required(ErrorMessageResourceName = "msgRequired",
ErrorMessageResourceType = typeof(Resources.Globals))]
public DateTime otherDate {get; set;}
Create.cshtml:
<script type="text/javascript">
$(document).ready(function () {
$('.optional').hide();
$('#ddlTypeID').change(function () {
var id = $(this).val();
if (id == 1) {
$('.optional').show();
} else {
$('.optional').hide();
}
});
});
</script>
@using (Html.BeginForm())
{
<div class="editor-field">
@Html.DropDownListFor(x=>x.ddlTypeID, new SelectList(Model.ddlTypes,"Key","Value",Model.ddlTypeID),Resources.Globals.msgType)
@Html.ValidationMessageFor(model => model.ddlTypeID)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.firstDate )
</div>
<div class="editor-field">
@Html.EditorFor(model => model.firstDate )
@Html.ValidationMessageFor(model => model.firstDate )
</div>
<div class="editor-label optional">
@Html.LabelFor(model => model.otherDate )
</div>
<div class="editor-field optional">
@Html.EditorFor(model => model.otherDate )
@Html.ValidationMessageFor(model => model.otherDate )
</div>
<input type="submit" value="Save" />
}
Это работает, чтобы скрыть / показать поля для otherDate- но как я могу одновременно включить проверку?Или есть лучший способ сделать это?