Hola a tod@s,
tengo un problemilla y es que en el formulario tengo 6 campos numéricos que controlo si están vacíos, si son numéricos y si están dentro de un rango de valores pero tambien quiero controlar que todos sean distintos entre ellos. He intentando añadir una función con jquery para validarlo pero no creo que lo esté haciendo bien, ahí os dejo el código a ver si a alguien se le ocurre algo:
<html>
<head>
<script type="text/javascript" src="js/jquery-1.8.0.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// Creamos una validación que no permita duplicidad de valores en ciertos campos
jQuery.validator.addMethod("noIgualA",function(val ue,element,param) {
var result = true;
if ( value != ($(param[0]).val() && value !=$(param[1]).val() && value !=$(param[2]).val() && value != $(param[3]).val() ) {
result = false;
}
return result;
},"No se pueden repetir los valores en los campos");
// Configuramos la validación de los distintos campos del formulario
$("#apuesta").validate( {
// Empezamos por las reglas
rules: {
num1: { // Cuando hay mas de una regla abrimos llaves
required: true, // Tiene que ser requerido
digits: true, // Sólo acepta dígitos
range: [1,50], // Indico que no puede ser menor de 1 ni mayor de 50
noIgualA: ["#num2","#num3","#num4","#num5"]
},
num2: {
required: true, // Tiene que ser requerido
digits: true, // Sólo acepta dígitos
range: [1,50], // Indico que no puede ser menor de 1 ni mayor de 50
noIgualA: ["#num1","#num3","#num4","#num5"]
},
num3: {
required: true, // Tiene que ser requerido
digits: true, // Sólo acepta dígitos
range: [1,50], // Indico que no puede ser menor de 1 ni mayor de 50
noIgualA: ["#num1","#num2","#num4","#num5"]
},
num4: {
required: true, // Tiene que ser requerido
digits: true, // Sólo acepta dígitos
range: [1,50], // Indico que no puede ser menor de 1 ni mayor de 50
noIgualA: ["#num1","#num2","#num3","#num5"]
},
num5: {
required: true, // Tiene que ser requerido
digits: true, // Sólo acepta dígitos
range: [1,50], // Indico que no puede ser menor de 1 ni mayor de 50
noIgualA: ["#num1","#num2","#num3","#num4"]
}
},
messages: { // Indicamos para cada campo y regla el mensaje que quiero mostrar si no se cumple.
num1: {
required: " (introduzca un valor)",
digits: " (ha de ser un número entero)",
range: " (ha de ser un valor entre 1 y 50)",
noIgualA: " (los números no pueden ser iguales)"
},
num2: {
required: " (introduzca un valor)",
digits: " (ha de ser un número entero)",
range: " (ha de ser un valor entre 1 y 50)",
noIgualA: " (los números no pueden ser iguales)"
},
num3: {
required: " (introduzca un valor)",
digits: " (ha de ser un número entero)",
range: " (ha de ser un valor entre 1 y 50)",
noIgualA: " (los números no pueden ser iguales)"
},
num4: {
required: " (introduzca un valor)",
digits: " (ha de ser un número entero)",
range: " (ha de ser un valor entre 1 y 50)",
noIgualA: " (los números no pueden ser iguales)"
},
num5: {
required: " (introduzca un valor)",
digits: " (ha de ser un número entero)",
range: " (ha de ser un valor entre 1 y 50)",
noIgualA: " (los números no pueden ser iguales)"
}
}
});
});
</script>
<body>
... el formulario con los inputs num1, num2, num3, num4 y num5 ...
</body>
</html>
Puede que sea error al recuperar los datos pero no estoy muy ducho en el tema por eso pido ayuda al respecto.
Gracias y saludos.