jQuery set validate attenzione in caso di errore non funziona su elementi FormHelper
-
27-09-2019 - |
Domanda
Sto usando monorotaia e la convalida jQuery. Il problema è che quando si utilizzano i FormHelpers, come ad esempio:
$FormHelper.TextField("user.username")
Si genera il seguente codice HTML:
<input type="text" value="" name="user.username" id="user_username">
Si genera anche la seguente regola validate jQuery (tramite l'attributo ValidateRegExp di ActiveRecord):
"user.username":{ required: "This is a required field" , regExp: "Invalid" }
Il problema è che l'id generato automaticamente presenta una sottolineatura al posto di un periodo così jQuery non riesce a trovarlo quando si imposta fuoco su un campo non valido.
Questo mi sembra un problema inerente alla monorotaia, ActiveRecord, e l'integrazione jQuery. Come fanno le persone ovviare a questo problema? In alcuni casi si può semplicemente creare il codice HTML manualmente e garantire gli attributi id e la forma sono le stesse, ma in molti casi è necessario utilizzare i FormHelpers, come quando si modificano le forme i valori non sono popolati a meno che non si utilizzano questi aiutanti che ho trovato .
Soluzione
Gli helper sono solo un wrapper per concatenazione di stringhe. per esempio, per apprezzi per essere popolato è possibile <input type="text" .... value="<%=user.username%>" />
Per quanto riguarda le regole di convalida jQuery, per quanto ne so lo fa necessità di specificare i campi del modulo per il loro attributo nome e non con l'attributo id