В настоящее время форма работает так, как задумано, до тех пор, пока вы не отправите форму с раскрывающимся списком Usage_Status со значением a, равным '2', а затем переключитесь на любое другое значение и снова отправите.Сообщение проверки подлинности JavaScript «Поле« Назначенный пользователь »обязательно для заполнения».появляется и не исчезает после переключения значений в раскрывающемся списке и повторной отправки.Можно ли удалить обязательный атрибут или установить его при условии, что выбрано «2»?
HTML:
<div class="row">
<div class="form-group col-sm-4">
@Html.LabelFor(model => model.Usage_Status, new { @class = "control-label col-md-12" })
<div class="col-md-10">
@Html.DropDownList("Usage_Status", new SelectList(statuses, "ID", "Name"), new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.Usage_Status)
</div>
</div>
<div class="form-group col-sm-4">
@Html.LabelFor(model => model.Assigned_User, new { @class = "control-label col-md-12" })
<div class="col-md-10">
@Html.EditorFor(model => model.Assigned_User, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Assigned_User)
</div>
</div>
<div class="form-group col-sm-4">
@Html.LabelFor(model => model.Department, new { @class = "control-label col-md-12" })
<div class="col-md-10">
@Html.DropDownList("Department", new SelectList(departments, "ID", "Name"), string.Empty, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.Department)
</div>
</div>
</div>
JavaScript:
$(document).ready(function () {
$('#Usage_Status').change(function (e) {
//If item is being used, require a user and department. Otherwise, disabled those fields.
if ($('#Usage_Status').val() == "2") {
$('#Assigned_User').rules('add', 'required');
$('#Assigned_User').removeAttr('disabled');
} else {
$('#Assigned_User').rules('remove', 'required');
$('#Assigned_User').removeAttr('required');
$('#Assigned_User').attr('disabled', 'disabled');
}
});