Проверка 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>

Это должно работать.

Ответ 3

Существует исправление для Visual Studio 2008 для JQuery IntelliSense в VS2008. Возможно, это также было связано с пакетом обновления 1 (SP1).

Ответ 4

относительно intellisense для jquery (и других плагинов): чтобы иметь полный intellisense в ваших собственных файлах script, просто включите следующую строку вверху вашего .js файла один раз для каждого файла, который вы хотите intellisensee из

/// <reference path="[insert path to script file here]" />

простой, но очень полезный =)