Выполните ручную проверку сервера и цветное текстовое поле в случае неудачи - PullRequest
0 голосов
/ 18 августа 2011

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

Если результат True или False, ничего не происходит

JQuery

        $('.datein').change(function () {
        //send servervalidering ajax
        var data = { dateOut: $('#resource_dateout').val(), dateHourOut: $('#resource_hourout').val(), dateMinuteOut: $('#resource_minuteout').val(),
            dateIn: $('#resource_datein').val(), dateHourIn: $('#resource_hourin').val(), dateMinuteIn: $('#resource_minutein').val()
        };
        $.post("Resource/isDateValid", data, ajaxsuccess);
    });

function ajaxsuccess(result) {
    if ($('.datein').hasClass('.resourceerror')) {
        if (result == "True") {
            $('.datein').removeClass('.resourceerror');
        }
    }
    else if (result == "False") {
        $('.datein').addClass('.resourceerror');
    }
}

Html

                <span class="editor-field">
                    @Html.TextBoxFor(m => m.DateIn.Date, new { @Id = "resource_datein", @class = "datepicker datein", maxlength = "10" })
                    @Html.TextBoxFor(m => m.DateIn.Hour, new { @Id = "resource_hourin", @class = "datein", maxlength = "2" })
                    :
                    @Html.TextBoxFor(m => m.DateIn.Minute, new { @Id = "resource_minutein", @class = "datein", maxlength = "2" })
                </span>
                <span>
                    @Html.ValidationMessageFor(m => m.DateIn.Date)
                    @Html.ValidationMessageFor(m => m.DateIn.Hour)
                    @Html.ValidationMessageFor(m => m.DateIn.Minute)
                </span>

Можно ли вместо этого просто включить проверку? Мой код не работает, я уверен на 100%, что Ajax-вызов возвращает либо True, либо False

Редактировать: При доступе к классам CSS я написал hasClass ('. Classname') вместо hasClass ('classname')

Ответы [ 2 ]

0 голосов
/ 18 августа 2011

При доступе к классам CSS я написал hasClass ('. Classname') вместо hasClass ('classname')

0 голосов
/ 18 августа 2011

Измените if (result) на if (result == "True"). Так как результатом является ответ AJAX, это строка, и если (результат) просто проверяет, имеет ли оно ненулевое значение, а не если текст строки имеет значение «Истина». Это МОЖЕТ помочь, поскольку, если проверка сервера завершится неудачно и вернет «False», ваш текущий код удаляет класс .resourceerror из входных данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...