he creado un formulario en el cual he de validar sus campos con JavaScript. En TODOS estos campos sólo quiero comprobar que se introduce un numero (entero y positivo, para ser más exactos). Lo he conseguido hacer y funciona bien, el problema está en que en mi opinión el código que he creado es un poco... cutre o chapucero (pero funcionar ya he dicho que funciona). El código es el siguiente:
Código:
Como he dicho esto funciona. Pero como podéis ver se hace la misma comprobación 4 veces. Y en realidad son más de 4 porque aquí he reducido el código. Entonces a mi se me ha ocurrido crear una cadena, introducir todos los valores que quiero comprobar en ella, y recorrer esa cadena con un bucle "for" para hacer la validación. Algo así:function valUsers(form) { var er_numero = /(^([0-9]{0,3})|^)$/ //número de máximo 3 digitos o cadena vacia if(!er_numero.test(form.userA.value)) { alert('Contenido del campo "Usuarios A" no válido.') return (false); } if(!er_numero.test(form.userB.value)) { alert('Contenido del campo "Usuarios B" no válido.') return (false); } if(!er_numero.test(form.userC.value)) { alert('Contenido del campo "Usuarios C" no válido.') return (false); } if(!er_numero.test(form.userD.value)) { alert('Contenido del campo "Usuarios D" no válido.') return (false); } }
Código:
Qué hago mal en la declaración de la cadena y el bucle FOR?? o como puedo hacer la comprobación de otra manera para evitar tantas sentencias IF??//Declaro la cadena, la he probado de estas 2 maneras y ninguna funciona: //cadena = new Array(userA, userB, userC, userD); //var cadena = [userA, userB, userC, userD]; for (i=0; i<4; i++) { if(!er_numero.test(form.cadena[i].value)) { alert('Contenido del campo cadena[i] no válido.') return (false); }
Saludos y gracias!!