Qualche tempo fa ci ho dedicato alcune ore e da allora ho utilizzato alcune magie js personalizzate per realizzare questo.
In effetti è abbastanza semplice e nel modo in cui funziona la convalida ASP.NET. L'idea di base è aggiungere una classe CSS per allegare un evento javascript su ciascun controllo che si desidera un rapido feedback visivo.
<script type="text/javascript" language="javascript">
/* Color ASP NET validation */
function validateColor(obj) {
var valid = obj.Validators;
var isValid = true;
for (i in valid)
if (!valid[i].isvalid)
isValid = false;
if (!isValid)
$(obj).addClass('novalid', 1000);
else
$(obj).removeClass('novalid', 1000);
}
$(document).ready(function() {
$(".validateColor").change(function() {validateColor(this);});
});
</script>
Ad esempio, questo sarà il codice da aggiungere su un controllo casella di testo ASP.Net. Sì, puoi metterne quante vuoi e questo implica solo aggiungere un valore CssClass.
<asp:TextBox ID="txtBxEmail" runat="server" CssClass="validateColor" />
Ciò che fa è innescare ASP.Net validazione lato client quando c'è un cambiamento sul controllo di lavoro e di applicare una classe CSS se non è valida. Quindi per personalizzare la visualizzazione puoi contare su css.
.novalid {
border: 2px solid #D00000;
}
Non e` sempre pulita ma quasi :) e almeno il codice non soffrirà di materiale extra. E il meglio, funziona con tutti i tipi di validatori Asp.Net, quelli personalizzati per eventi.
Non ho visto qualcosa come questo su Google, quindi non voglio condividere il mio trucco con te. Spero che sia d'aiuto.
roba in più sul lato server:
Dopo un po 'di utilizzare questo ho anche aggiungere questo ".novalid" classe CSS dal codice dietro quando bisogno di qualche particolare convalida sulle cose che forse poteva essere controllata solo sul lato server in questo modo:
Page.Validate();
if (!requiredFecha.IsValid || !CustomValidateFecha.IsValid)
txtFecha.CssClass = "validateColor novalid";
else
txtFecha.CssClass = "validateColor";
Penso che le tue variabili v1 e v2 siano inutilizzate: P – billy
sì, ma questo è veloce e ** sporco **: D. li ho appena commentati – TheVillageIdiot
forse sporco, ma non ho trovato una soluzione migliore !! : P – billy