MVC.net Проверка jQuery
-
09-06-2019 - |
Вопрос
После многолетних попыток избежать JavaScript, Iv начал использовать Query для валидация в MVC asp.net поскольку официального способа проверки, похоже, не существует, я был удивлен, насколько хорош jQuery.
Во-первых, есть ли способ заставить intellisense работать с jQuery и его плагином проверки, чтобы мне не нужно было изучать API?
Во-вторых, как мне создать сводку проверки для этого, в настоящее время она добавляет ошибку справа от текстового поля.:
<script type="text/javascript">
$().ready(function() {
$("#CreateLog").validate({
rules: {
UserName: {
required: true,
minLength: 2,
}
},
messages: {
UserName: {
required: "Please enter a username",
minLength: "Your username must consist of at least 2 characters",
}
}
});
});
</script>
<form id="CreateLog" action="Create" method="post" />
<label>UserName</label><br />
<%=Html.TextBox("UserName")%>
<br />
<div class="error"> </div>
<input type=submit value=Save />
</form>
Я попытался добавить это в скрипт:
errorLabelContainer: $("#CreateLog div.error")
и это в html:
<div class="error"> </div>
Но это не сработало.
Решение
Попробуйте указать в своих параметрах как оболочку, так и контейнер для этикеток.Я также добавил display:none;
к стилю контейнера ошибок, позволяющему jQuery решать, когда его показывать.
$().ready(function() {
$("#CreateLog").validate({
errorLabelContainer: $("ul", $('div.error-container')),
wrapper: 'li',
rules: {
UserName: {
required: true,
minLength: 2,
}
},
messages: {
UserName: {
required: "Please enter a username",
minLength: "Your username must consist of at least 2 characters"
}
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="error-container">
<ul></ul>
</div>
<form id="CreateLog" action="Create" method="post" />
<label>UserName</label><br />
<%=Html.TextBox("UserName")%>
<br />
<input type=submit value=Save />
</form>
Это должно сработать.
Другие советы
Возможно, вы захотите проверить Карл СегенASP.NET Подход к валидации MVC на CodeBetter.com и его образец холст для нанесения.
Проверка - Часть 1 - Начало работы
Существует исправление Visual Studio 2008 для jQuery IntelliSense в ВС2008 .Возможно, это также входило в комплект поставки SP1.
что касается intellisense для jquery (и других плагинов):чтобы иметь полный intellisense и в ваших собственных файлах сценариев, просто включите следующую строку в начало вашего файла .js один раз для каждого файла, из которого вы хотите получить intellisensee:
/// <reference path="[insert path to script file here]" />
простой, но очень полезный =)