С тех пор, как я уже стучаю головой, он пробовал все идеи (nooby или нет), но, похоже, я не могу заставить его работать.Html.ValidationMessageFor с изображением и подсказкой
Что я пытаюсь архивировать: Вместо первоначального сообщения о проверке я хотел бы просто показать значок с помощью всплывающей подсказки jquery. Также решение должно быть легким в обслуживании ... означает использование на каждом представлении, где требуется подтверждение.
То, что я пытался до сих пор:
@Html.ValidationMessageFor(Function(m) m.Password, Nothing, New With {.class = "ValWarn"})
CSS:
.ValWarn {content: url(images/Warning.png);margin: 0.1em;}
Результат: image 1
Проблема: Я не могу назначить сообщение Validation своему названию.
Test # 20357
<div id="divhiddenval" style="display: none;">
@Html.ValidationMessageFor(Function(m) m.Password)
</div>
@Html.PasswordFor(Function(m) m.Password)
<div id="[email protected](Function(m) m.Password)" style="display: inline;"></div>
Javascript:
$(document).ready(function() {
fullValidation();
$('form').submit(function() {
if (! $(this).valid()) {
fullValidation();
return false;
}
});
$('input').keydown(function() {
singleValidation(this.id);
tooltip();
});
});
function singleValidation(_id) {
var _err = $("span[data-valmsg-for='" + _id + "']");
if ($(_err).text() != "") {
$("#valdiv_" + $(_err).attr("data-valmsg-for")).html("<span class='ValWarn tooltip' title='<span class="warncolor">" + $(_err).text() + "</span>'></span>");
} else {
$("#valdiv_" + $(_err).attr("data-valmsg-for")).html("");
}
}
function fullValidation() {
$("#divhiddenval span[data-valmsg-for]").each(function() {
singleValidation($(this).attr("data-valmsg-for"));
})
tooltip();
}
Результат: shows tooltip on hover
Проблема: Это своего рода излишеством назвать всплывающую подсказку() каждый раз. Также он не работает при первом нажатии клавиши. Он работает, когда я выхожу из ввода и снова перехожу к типу. поэтому нажатие клавиши не срабатывает, пока не потеряет фокус один раз.
Следующая попытка: Я нашел где-то в Интернете подтверждение ValidationHTMLMessageFor Extension. довольно близко, но до сих пор ... Мое приложение глобализовано, поэтому я должен был бы добавить изображение перед каждым resourcestring, так как для dataanotations он принимает только статические строки. Также проблема с подсказкой не будет исправлена с этим.
Так что вообще ... Я не могу думать о каком-либо другом методе, который работал бы так, как я этого хочу. С другой стороны, я не могу поверить, что Microsoft делает это так трудно стиль Validationmessages нашей собственной :(
Если кто-то пожалуйста, может мне помочь с этой проблемой?
Доброе утро, и спасибо, что разделили ссылку. Две проблемы, с которыми я сталкиваюсь с этим решением. 1. Что делать, если у меня есть несколько правил проверки правильности? Допустим, что это требуется, а также имеет длину данных? метод, описанный в ссылке, не догоняет текущую ошибку. поэтому, если я устанавливаю пароль длиной 3, то всплывающая подсказка будет по-прежнему показывать требуемую ошибку вместо ошибки длины. 2. проблема ... эта самая раздражающая ... если я не использую ValidationMessageFor для всех свойств, я получаю «неконтролируемый токен u» из unonbstutive js. самая раздражающая вещь tbh – GeekByChoiCe