Вопрос

После многолетних попыток избежать 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>

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

Другие советы

Существует исправление Visual Studio 2008 для jQuery IntelliSense в ВС2008 .Возможно, это также входило в комплект поставки SP1.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top