Esiste un modo per disattivare la convalida lato client per dojo data casella di testo?
-
08-06-2019 - |
Domanda
Nel mio esempio sotto sto usando un dijit.form.DateTextBox
:
<input type="text" name="startDate" dojoType="dijit.form.DateTextBox" constraints="{datePattern:'MM/dd/yyyy'}" value='<c:out value="${sessionScope.adminMessageForm.startDate}"/>' />
Così, per esempio, se l'utente inizia a entrare "asdf" in data il campo diventa giallo e un popup di errore viene visualizzato il messaggio The value entered is not valid.
.Anche se io rimuovere il constraints="{datePattern:'MM/dd/yyyy'}"
è ancora valida.
Senza entrare nei dettagli del perché, vorrei essere in grado di tenere il dojoType e ancora impedire la convalida in particolari circostanze.
Soluzione
Provare a ignorare il metodo validate nel markup.
Questo sarà il lavoro (appena testato):
<input type="text" name="startDate" dojoType="dijit.form.DateTextBox"
constraints="{datePattern:'MM/dd/yyyy'}"
value='<c:out value="${sessionScope.adminMessageForm.startDate}"/>'
validate='return true;'
/>
Altri suggerimenti
Il mio unico suggerimento è quello di rimuovere a livello di programmazione il dojoType sul lato server o lato client.Non è possibile mantenere il dojoType e non convalida.A meno che non si crea proprio il tipo che ti ha logica.
Ho avuto un problema simile, dove il ValidationTextBox soddisfatto tutte le mie esigenze, ma è stato necessario disattivare la routine di convalida fino a dopo che l'utente ha premuto prima di Presentare.
La mia soluzione è stata di clonare questo in un ValidationConditionalTextBox con un paio di nuovi metodi:
enableValidator:function() {
this.validatorOn = true;
},
disableValidator: function() {
this.validatorOn = false;
},
Poi, nel validator:function() ho aggiunto un controllo unico:
if (this.validatorOn)
{ ... }
Abbastanza semplice, il mio valore di default per validatorOn è false (questo viene visualizzato in alto a destra di javascript).Quando il mio modulo invia, è sufficiente chiamare enableValidator().È possibile visualizzare l'intero JavaScript qui:
http://lilawnsprinklers.com/js/dijit/form/ValidationTextBox.js