/ / Datannotations + asp.net mvc 3 + convalida lato client (non esegue il kick-in finché non si verifica un invio di modulo) - asp.net-mvc, asp.net-mvc-3, jquery-validate, data-annotations

Datannotations + asp.net mvc 3 + convalida lato client (non esegue il kick-in finché non si verifica un invio di modulo) - asp.net-mvc, asp.net-mvc-3, jquery-validate, data-annotations

Sto usando asp.net mvc 3, jquery validate, javascript non ostruito e annotazioni di dati.

Ho notato che dì la tua nella casella di testo A che è unrichiesto e fare clic su di esso, nessun testamento convalida come. È come se il javascript non fosse entrato in gioco. Se fanno clic sul pulsante di invio, viene visualizzata la convalida.

Quindi, se tornano alla casella di testo A e iniziano a digitare, la convalida scompare. Quindi la validazione lato client sta funzionando.

Mi chiedo se sia qui per ottenere la convalida del lato client da avviare subito?

risposte:

3 per risposta № 1

Ecco cosa sta succedendo e perché.

  1. La casella di testo inizia come vuota. Si attiva e disattiva la scheda e non si verifica alcuna convalida (a meno che non si invii invio)
  2. Inserisci alcuni valori Si attiva la scheda e ora si attiva la convalida (ma la casella di testo ha un valore, quindi nessun errore)
  3. Tornare alla casella di testo e cancellare il valore. Si estrae e ora si ottiene il messaggio di convalida.

La ragione di questo comportamento è che non vogliamo iniziare a spuntare degli errori su tutto il modulo solo perché l'utente non può decidere quale campo vogliono iniziare a compilare per primo.


1 per risposta № 2

È così che è stata implementata la convalida lato client discreto ASP.NET MVC 3 Se si desidera modificare questo comportamento, è sempre possibile scrivere le proprie regole e opzioni di convalida personalizzate con jquery.validate collegare:

$("#myForm").validate({
rules: {
name: {
email: true
}
}
});