Convalida jQuery di MVC.net
-
09-06-2019 - |
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.
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
È 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 =)