Pergunta

Depois de tentar evitar o JavaScript para anos, Iv iniciado usando o Query para validação no MVC asp.net como não parece ser uma forma oficial de fazer a validação, Iv foi surpreso com o quão bom o jQuery.

Em primeiro lugar, existe uma maneira de obter o intellisense de trabalho para jQuery e sua validação plugin, para que eu não tenha que aprender a api?

Em segundo lugar, como eu faço para criar um resumo de validação para este, atualmente, acrescenta o erro para a direita da caixa de texto.:

<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>

Eu tentei adicionar este script:

 errorLabelContainer: $("#CreateLog div.error")

e isso para o html:

  <div class="error"> </div>

Mas isso não funcionou.

Foi útil?

Solução

Tente especificar tanto um invólucro e um rótulo do recipiente em suas opções.Eu também adicionei display:none; para o estilo de erro-recipiente para deixar jQuery decidir quando mostrá-lo.

$().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>

Que deve funcionar.

Outras dicas

Há uma Visual Studio 2008 hotfix para JQuery IntelliSense no VS2008 .Isso pode ter sido fornecido com o SP1 bem.

sobre o intellisense para jquery (e outros plug-ins):para ter total intellisense em seus próprios arquivos de script bem, basta incluir a seguinte linha no topo da sua .arquivo js uma vez para cada arquivo que você deseja intellisensee de:

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

simples, mas muito útil =)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top