Estoy tratando de validar el elemento de selección html usando el complemento jQuery Validate. Establecí la regla "requerida" en verdadero pero siempre pasa la validación porque el índice cero se elige de forma predeterminada. ¿Hay alguna forma de definir el valor vacío que utiliza la regla requerida?
UPD Ejemplo. Imagine que tenemos el siguiente control html:
<select>
<option value="default">Choose...</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
Quiero que el complemento de Validación use el valor "predeterminado" como vacío.
jquery
jquery-validate
SiberianGuy
fuente
fuente
Respuestas:
¡Puedes escribir tu propia regla!
fuente
$.validator.addMethod("valueNotEquals", function(value, element, arg){ return return arg != jQuery(element).find('option:selected').text(); }, "Value must not equal arg.");
Aquí se describe una solución más fácil: validar el cuadro de selección
Haga que el valor esté vacío y agregue el atributo requerido
fuente
solo establezca el valor de la primera opción para vaciar la cadena
value=""
y la regla de validación de jquery
required
will work
fuente
usar regla mínima
establecer el primer valor de opción en 0
fuente
Solo necesita poner
validate[required]
como clase de esta selección y luego poner una opción con valor = ""por ejemplo:
fuente
No sé cómo fue el complemento cuando se hizo la pregunta (2010), pero hoy me enfrenté al mismo problema y lo resolví de esta manera:
Dele a su etiqueta de selección un atributo de nombre. Por ejemplo en este caso
<select name="myselect">
En lugar de trabajar con el atributo value = "default" en la opción de etiqueta, desactive la opción predeterminada o establezca value = "" como sugiere Andrew Coats
<option disabled="disabled">Choose...</option>
o
<option value="">Choose...</option>
Establecer la regla de validación del complemento
$( "#YOUR_FORM_ID" ).validate({ rules: { myselect: { required: true } } });
o
<select name="myselect" class="required">
Obs: la solución de Andrew Coats funciona solo si solo tiene una selección en su formulario. Si desea que su solución funcione con más de una selección, agregue un atributo de nombre a su selección.
¡Espero eso ayude! :)
fuente
required
atributo a la<select>
etiqueta y agregue eldisabled
atributo a la primera<option>
etiqueta (o laselected
que tenga el atributo si la hay)Aquí está el ejemplo simple y comprensible:
JQuery:
fuente
el valor seleccionado estará en blanco
fuente
Es simple, necesita obtener el valor del campo Seleccionar y no puede ser "predeterminado".
fuente
La solución mencionada por @JMP funcionó en mi caso con una pequeña modificación: uso en
element.value
lugar devalue
en eladdmethod
.Podría ser posible, que tengo un caso especial aquí, pero no rastreé la causa. Pero la solución de @ JMP debería funcionar en casos regulares.
fuente
cómo validar la selección "qualifica" tiene 3 elegir
fuente