¿Hay alguna forma de desactivar la validación del lado del cliente para el cuadro de texto de fecha del dojo?

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

  •  08-06-2019
  •  | 
  •  

Pregunta

En mi ejemplo a continuación estoy 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}"/>' />

Entonces, por ejemplo, si el usuario comienza a ingresar "asdf" en la fecha, el campo se vuelve amarillo y aparece un mensaje de error emergente que dice The value entered is not valid..Incluso si elimino el constraints="{datePattern:'MM/dd/yyyy'}" todavía valida.

Sin entrar en detalles de por qué, me gustaría poder conservar el dojoType y aún evitar la validación en circunstancias particulares.

¿Fue útil?

Solución

Intente anular el método de validación en su marcado.

Esto funcionará (recién probado):

<input type="text" name="startDate" dojoType="dijit.form.DateTextBox" 
  constraints="{datePattern:'MM/dd/yyyy'}"  
  value='<c:out value="${sessionScope.adminMessageForm.startDate}"/>'
  validate='return true;'
/>

Otros consejos

Mi única sugerencia es eliminar mediante programación el dojoType en el lado del servidor o del cliente.No es posible conservar el dojoType y no validarlo.A menos que crees tu propio tipo que tenga tu lógica.

Tuve un problema similar, donde ValidationTextBox satisfizo todas mis necesidades pero fue necesario deshabilitar las rutinas de validación hasta que el usuario presionó Enviar por primera vez.

Mi solución fue clonar esto en ValidationConditionalTextBox con un par de métodos nuevos:

    enableValidator:function() {
        this.validatorOn = true;
    },

    disableValidator: function() {
        this.validatorOn = false;
    },

Luego, en el validador: función() agregué una sola verificación:

        if (this.validatorOn)
        { ... }

Bastante sencillo, mi valor predeterminado para validatorOn es falso (esto aparece justo en la parte superior de JavaScript).Cuando se envíe mi formulario, simplemente llame a enableValidator().Puedes ver el JavaScript completo aquí:

http://lilawnsprinklers.com/js/dijit/form/ValidationTextBox.js

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top