Использование ненавязчивой проверки jQuery в проекте .NET MVC, и это, кажется, работает нормально.Сейчас я пытаюсь показать зеленую галочку, когда поле проверяется правильно (на стороне клиента и / или удаленно).
Вот пример объявления поля:
<div class="clearfix">
@Html.LabelFor(model => model.Address1, "Street")
<div class="input">
@Html.TextBoxFor(model => model.Address1, new { @class = "xlarge", @maxlength = "100", @placeholder = "e.g. 123 Main St" })
<span class="help-message">
@Html.ValidationMessageFor(model => model.Address1)
<span class="isaok">Looks great.</span>
</span>
<span class="help-block">Enter the street.</span>
</div>
</div>
Что бы янравится делать, это добавить класс «активный» к «span.isaok», который, в свою очередь, имеет галочку для фонового изображения.
Я пытался использовать подсветку / неяркость:
$.validator.setDefaults({
onkeyup: false,
highlight: function (element, errorClass, validClass) {
$(element).addClass(errorClass).removeClass(validClass);
$(element.form).find("label[for=" + element.id + "]").addClass("error");
$(element).parent().find("span.isaok").removeClass("active");
},
unhighlight: function (element, errorClass, validClass) {
$(element).removeClass(errorClass).addClass(validClass);
$(element.form).find("label[for=" + element.id + "]").removeClass("error");
if ($(element).val().length > 0) {
$(element).parent().find("span.isaok").addClass("active");
}
}
});
но это показывает зеленую галочку для всех полей, даже если они пусты!(следовательно, очевидно, неправильно)
Затем я попытался использовать опцию «success», но это никогда не срабатывало.
Чего мне не хватает?
Редактировать: Итак, я нашел это сообщение в блоге и смог воспользоваться функцией успеха, т.е.
$(function () {
var settings = $.data($('form')[0], 'validator').settings;
settings.onkeyup = false;
settings.onfocusout = function (element) { $(element).valid(); };
var oldErrorFunction = settings.errorPlacement;
var oldSuccessFunction = settings.success;
settings.errorPlacement = function (error, inputElement) {
inputElement.parent().find("span.isaok").removeClass("active");
oldErrorFunction(error, inputElement);
};
settings.success = function (label) {
var elementId = '#' + label.attr("for");
$(elementId).parent().find("span.isaok").addClass("active");
oldSuccessFunction(label);
};
});
, но теперь, если форма недействительна, она отображает как сообщение об ошибке, так и действительный знак ...
, и последний исчезает, как толькоЯ нажимаю в любом месте на странице.