Pregunta

Estoy usando el jQuery Validation plugin y tengo un cuadro de texto con el clase digits para forzarlo a ser solo dígitos, pero no es obligatorio. Cuando llamo validar en el formulario funciona bien, pero si llamo a valid() en el cuadro de texto cuando está vacío, devuelve 0, a pesar de que no se muestra ningún mensaje de error y no es necesario configurarlo.

¿Alguien sabe por qué devolvería esto por un valor de entrada aparentemente válido?

Aquí está el código:

<input type="text" value="" name="kiloMetresTravelled" id="kiloMetresTravelled" class="digits"/>

y el script

<script type="text/javascript'>
 var isvalid = jQuery('#kiloMetresTravelled').valid(); 
 //isvalid == 0 when kiloMetresTravelled is blank
</script>
¿Fue útil?

Solución

Verifique esto, desde la documentación :

  

Hace " campo " requerido y dígitos   solo.

Podrías hacer algo como esto:

var isValid = jQuery('#kiloMetresTravelled').valid() || jQuery('#kiloMetresTravelled').val() == "";

Otros consejos

Creo que esto funciona:

var e="#whatever";
var isValid = $(e).valid() || $(e).val()== "" && !$(e).hasClass('required');

Hay un error en la biblioteca cuando los métodos de regla verifican los campos opcionales con " this.optional (element) " ;. Cuando el campo está vacío, this.optional devuelve & Quot; dependency-incompatch & Quot; y el método de validación devuelve " undefined " marcando el campo como no válido.

Explicación completa aquí:

https://github.com/jzaefferer/jquery-validation/issues/481

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