Domanda

Dopo aver cercato di evitare JavaScript per anni, Iv ha iniziato a utilizzare Query for convalida in MVC asp.net, poiché non sembra esserci un modo ufficiale per eseguire la convalida, sono rimasto sorpreso dalla qualità di jQuery.

Innanzitutto esiste un modo per far funzionare IntelliSense per jQuery e il suo plug-in di convalida, in modo da non dover imparare l'API?

In secondo luogo, come posso creare un riepilogo di convalida per questo, attualmente aggiunge l'errore a destra della casella di testo.:

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

Ho provato ad aggiungere questo allo script:

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

e questo per l'html:

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

Ma questo non ha funzionato.

È stato utile?

Soluzione

Prova a specificare sia un wrapper che un contenitore di etichette nelle opzioni.Ho anche aggiunto display:none; allo stile del contenitore degli errori per consentire a jQuery di decidere quando mostrarlo.

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

Dovrebbe funzionare.

Altri suggerimenti

Potresti voler dare un'occhiata Carlo SeguinL'approccio di convalida ASP.NET MVC di è attivo CodeBetter.com e il suo campione tela di applicazione.

Convalida - Parte 1 - Come iniziare

Convalida - Parte 2 - Lato client

Convalida - Parte 3 - Lato server

È disponibile un hotfix per Visual Studio 2008 JQuery IntelliSense In VS2008 .Anche questo potrebbe essere stato fornito in bundle con SP1.

per quanto riguarda intellisense per jquery (e altri plugin):per avere intellisense completo anche nei tuoi file di script, includi semplicemente la seguente riga nella parte superiore del tuo file .js una volta per ogni file da cui desideri intellisense:

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

semplice ma molto utile =)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top