Esiste un modo per disattivare la convalida lato client per dojo data casella di testo?

StackOverflow https://stackoverflow.com/questions/15514

  •  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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top