Las validaciones son un poco no comunes debido a la lógica necesaria para el formulario segun los requerimientos. Pues hay 2 campos (que es en los que me sale el problema) que dependiendo de la seleccion de un radio previo aparecen o se mantienen ocultos. Si el radio es SI aparecen para que se les ponga un monto. si es no se mantienen oculto y deben tener un valor igual a 0. Y es alli en donde sale el problema. Mostrare el codigo.
A ver si alguien tiene idea.
En la pagina llamo al formulario asi
Código HTML:
los "\" es porque la impresion del HTML lo hago desd php.Ver original
<form action=\"porcenstajeComision.php\" method=\"post\" onsubmit=\"return validarForm(this);\">\n
La funcion de validacion en javascript es la siguiente:
Código Javascript:
No es tal como la tenia pensada. La bandera igualada a 3 y eso. son cosas que agregue luego viendo si conseguia el error. Pero en fin. creo que se entiende. En la funcion llamo a "marcarObligatorio" q valida los campo y los marca en caso de no ser llenados, todo funciona bien. luego llamo a "numerico" que es la que me trae problema. Esta funcion la uso en distintos formularios sin problemas, el error da aqui que es lo que ya explique. La funcion lo unico que hace es validar q el campo solo tenga numeros. Es la siguiente:Ver original
function formEmpr(form){ bandera=0; if(validarRif(form.tipoRif,form.rif,form.rifFinal)){ if(marcarObligatorio(form.tipoEmp)) if(marcarObligatorio(form.nombre)) if(marcarObligatorio(form.direccion)) bandera=2; if (bandera==2){ if(form.infruc.value!=0){ if(numerico(form.infruc)) bandera=3; } if(form.porcent.value!=0){ if(numerico(form.porcent)) bandera=3 } if(bandera==3) bandera=1 }else{ alert("¡los campos marcados con asterisco (*) son obligatorios!"); return false; } if (bandera==1){ alert("Formulario completo") return false; } }else{ return false; }//fin if validarRif
Código Javascript:
Como explique anteriormente. Es una validación que no deberia ser tan compleja, las funciones las e usado por separado y funcionan. el detalle esta cuando quiero validar esos campos ocultos que si toca llenarlos no puedan ingresar letras ni caracteres especiales. Muchas gracias por su tiempo. Si me ven el error lo agradezco. Ver original
function numerico(camp){ var expr= /^(?:\+|-)?\d+$/; if (camp.value != ''){ if (camp.value.match(expr)) { return true }else{ alert("El campo solo puede contener caracteres numericos"); camp.value=''; camp.focus(); // return false; } } //else{return false;} }//fin funcion numerico