Проверка MVC.net JQuery
После попытки избежать JavaScript в течение нескольких лет, Iv начал использовать JQuery для validation в 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>
Я попытался добавить это к script:
errorLabelContainer: $("#CreateLog div.error")
и это в html:
<div class="error"> </div>
Но это не сработало.
Ответы
Ответ 1
Попробуйте указать в своих опциях как оболочку, так и контейнер ярлыков. Я также добавил отображение: none; в стиле error-container, чтобы позволить jquery решить, когда его показывать.
Html:
<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>
Script:
<script type="text/javascript">
$().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>
Это должно работать.
Ответ 2
Возможно, вы захотите проверить Karl Seguin Подтверждение валидации ASP.NET MVC на CodeBetter.com и его образец canvas.
Валидация - Часть 1 - Начало работы
Проверка - Часть 2 - Клиентская сторона
Проверка - часть 3 - серверная сторона
Ответ 3
Существует исправление для Visual Studio 2008 для JQuery IntelliSense в VS2008. Возможно, это также было связано с пакетом обновления 1 (SP1).
Ответ 4
относительно intellisense для jquery (и других плагинов): чтобы иметь полный intellisense в ваших собственных файлах script, просто включите следующую строку вверху вашего .js файла один раз для каждого файла, который вы хотите intellisensee из
/// <reference path="[insert path to script file here]" />
простой, но очень полезный =)