В MVC 5, как мне удалить обязательный атрибут в зависимости от другого выпадающего значения? - PullRequest
0 голосов
/ 28 ноября 2018

В настоящее время форма работает так, как задумано, до тех пор, пока вы не отправите форму с раскрывающимся списком 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');
    }

});

1 Ответ

0 голосов
/ 28 ноября 2018

Если вы выполняете условную проверку, например, значение одного поля в вашей форме определяет проверку для другого поля, вам нужна дополнительная библиотека.Я использую выразительные аннотации

...