2010-12-06 11 views
20

estoy usando jQuery Validación Plugin para la validación de formularios y no soy capaz de lista de validación/caja de selecciónjQuery validar cuadro de selección

<select id="select"> 
<option value="-1">Choose an option</option> 
<option value="1">One</option> 
<option value="2">Two</option> 
<option value="3">Three</option> 
</select> 

Ahora, yo quiero para asegurarse de que el usuario selecciona cualquier cosa menos "Elija una opción "(que es la predeterminada, y tiene valor como -1). Para que no valide si eliges la primera opción. ¿Cómo puede hacerse esto?

+0

posible duplicado de [jQuery Validar obligatorio Seleccionar] (http://stackoverflow.com/questions/2901125/jquery-validate -required-select) –

Respuesta

11

Puede utilizar Jquery Validator custom rule.

Se discute un ejemplo similar here. El código siguiente es el ejemplo:

// add the rule here 
$.validator.addMethod("valueNotEquals", function(value, element, arg){ 
    return arg != value; 
}, "Value must not equal arg."); 

// configure your validation 
$("form").validate({ 
    rules: { 
    SelectName: { valueNotEquals: "-1" } 
    }, 
    messages: { 
    SelectName: { valueNotEquals: "Please select an item!" } 
    } 
}); 
+0

@ down votantes: ¿por qué? Soy consciente de que funciona "select: required", pero esta respuesta también es válida. También le permite más espacio para personalizar su mensaje de error. –

19

Deja <option value="">Choose an option</option> como en blanco en lugar de -1

mediante la validación de jQuery

rules: {      
       select: "required" 
} 
+0

Lo único es que no puedo borrar el valor de "" –

+1

Probablemente es la forma más fácil. – di3sel

4

Añadir esta regla en su

select:{ 
    required: function(element) { 
    if($("#select").val() =='-1'){ 
     return false; 
    } else { 
     return true; 
    } 
    } 
} 
+0

gracias por la ayuda, "dhanyawad" –

1

o utilizar el valor del elemento:

required: function(elm) { 
    if(elm.options[elm.options.selectedIndex].value != "-1") { 
     return true; 
    } else { 
     return false; 
    } 
} 
1

¿Por qué no se utiliza el valor de la ¿condición?

required: function(elm) { 
    return (elm.options[elm.options.selectedIndex].value != "-1"); 
} 

Esto hace lo mismo que la solución de Robin, pero es mucho más corto.

0

¿Cómo podemos validar para jQuery UI de selección desplegable

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/jquery.validate.min.js"></script> 
 
<script> 
 
$(".intselect").selectmenu(); 
 
$().ready(function() { 
 

 

 
jQuery.validator.setDefaults({ 
 
    debug: true, 
 
    success: "valid" 
 
}); 
 
$("#validateregister").validate({ 
 
    rules: { 
 
\t firstname: { 
 
     required: true 
 
    }, 
 
\t email: { 
 
     required: true, 
 
\t email: true 
 
    }, 
 
    year: { 
 
     required: true 
 
    } 
 
    } 
 
    
 
}); 
 
$('#validateregister').change(function() { 
 
     if ($("#validateregister").valid()) { 
 
      $(".go").removeAttr("disabled"); 
 
     } 
 
\t \t else{ 
 
\t \t \t $(".go").attr("disabled","disabled"); 
 
\t \t } 
 
    }); 
 
}); 
 
</script>
"sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 
 
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<form id="validateregister" style="width: 300px;"> 
 
    <div> <br /> 
 
    <input type="text" name="firstname" class="form-control" id="firstname" /> 
 
    </div> 
 
    <div> <br /> 
 
    <input type="text" name="email" class="form-control" id="email" /> 
 
    </div> 
 
    <div> <br /> 
 
    <select class="form-control intselect" name="year" id="year"> 
 
     <option value="">Select year</option> 
 
     <option value="2014">2014</option> 
 
     <option value="2015">2015</option> 
 
     <option value="2016">2015</option> 
 
    </select> 
 
    </div> 
 
    <div> <br /> 
 
    <input type="submit" class="btn btn-default go" value="submit" disabled> 
 
    </div> 
 
</form>

Cuestiones relacionadas