Foros del Web » Programando para Internet » Javascript »

funciones para validar input text y checkbox con 2 botones submit

Estas en el tema de funciones para validar input text y checkbox con 2 botones submit en el foro de Javascript en Foros del Web. amigos necesito me ayuden por favor resulta que tengo una pagina con 2 input text, necesito validarlos, para ello tengo Código PHP: function  validar (){ ...
  #1 (permalink)  
Antiguo 15/07/2008, 17:38
 
Fecha de Ingreso: junio-2008
Mensajes: 53
Antigüedad: 15 años, 10 meses
Puntos: 1
funciones para validar input text y checkbox con 2 botones submit

amigos necesito me ayuden por favor

resulta que tengo una pagina con 2 input text, necesito validarlos, para ello tengo

Código PHP:
function validar(){
       if (
document.form1.comp_libre.value.length 6) {
            
alert("DEBE INGRESAR UNA NOMBRE PARA LA COMPETENCIA, MAYOR DE 5 CARACTERES")
            return 
false;
        }
        else{
            if (
document.form1.descrip.value.length 10) {
                
alert("DEBE INGRESAR UNA DESCRIPCIÓN PARA LA COMPETENCIA, MAYOR DE 10 CARACTERES")
                return 
false;
            }
            else 
validar_check()
        }            
    } 
esto va a la perfeccion, ahora el asunto es que tengo 2 botones submit en la pagina. La idea es que con uno solo envio los input text (validando previamente)

y con el otro lo mismo pero validando a la vez una lista que checkbox generados dinamicamente, para lo cual uso esta funcion

Código PHP:
function validar_check() {
        
contador=0;
        for(
i=0i<form1.elements.lengthi++)
            if(
form1.elements[i].type=="checkbox")
                if(
form1.elements[i].checked)
                    
contador++
        if(
contador==0){
            
alert('NO HA SELECCIONADO NADA');
            return 
false;
        }
    } 
estas funciones estan mas que probadas, el tema es que para saber que boton(submit) se presiono tengo

Código PHP:
function llama(x){
        if (
== "1"){
            var 
accion "../control/guardar_comp_sesion.php";
            
window.document.form1.action accion;
            
self.document.form1.submit();
        }
        else{    
            var 
accion "../control/guardar_comp_varios.php";
            
window.document.form1.action accion;
            
self.document.form1.submit();
        } 
necesito saber como utilizo esas funciones para validar si

cuando =="1" debo validar solo los input text

cuando =="2" validos los input text y los checkbox

intente poniendo las funciones dentro de el if y else respectivamente
Código PHP:
if (== "1"){
                       return 
validar()
            var 
accion "../control/guardar_comp_sesion.php";
            
window.document.form1.action accion;
            
self.document.form1.submit();
        } 
me valida , pero no me hace submit.

en este otro caso, no me retorna el flujo despues del return validar()
Código PHP:
else{    
                        return 
validar
                        
return validar_check
            
var accion "../control/guardar_comp_varios.php";
            
window.document.form1.action accion;
            
self.document.form1.submit();
        } 
sorry si ando muy perdido pero estoy dandome "porrazos" aun, asi se aprende dicen

saludos
  #2 (permalink)  
Antiguo 15/07/2008, 18:12
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: funciones para validar input text y checkbox con 2 botones submit

Hola hzapata9:

¿No es este uno de los casos en que intentamos complicarnos la vida nosotros solitos? Creo que deberías generar dos formularios distintos, y cada uno con su botón submit. Si deseas uno y no el otro, deberías ocultar el correspondiente.

Aún así hay varias formas de resolver el problema. Te comento que es recomendable por temas de accesibilidad hacer el submit directamente con el botón, como forma natural, y no con javascript (porque puede estar desactivado).

Si generas dinámicamente los checkboxes mediante PHP (supongo) también podrás escoger mediante PHP qué función se elige para validar. Otra opción es generar un campo hidden con el valor de x que tantos quebraderos te da. Otra podría ser mediante PHP crear directamente la variable x en javascript.


Como ves hay muchas maneras, pero te sugiero que escojas la que más fácil puedas resolver y veas que no te da problemas y controles.

Saludos
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 15/07/2008, 18:45
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Respuesta: funciones para validar input text y checkbox con 2 botones submit

loading...........


Aca tienes la solucion

Código PHP:
if (== "1"){ 
            var 
validacion validar();
            if(
validacion!==false)
            {
                        var 
accion "../control/guardar_comp_sesion.php"
                        
window.document.form1.action accion
                        
self.document.form1.submit(); 
            }
        } 
connection closed.
__________________

Maborak Technologies
  #4 (permalink)  
Antiguo 17/07/2008, 09:59
 
Fecha de Ingreso: junio-2008
Mensajes: 53
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: funciones para validar input text y checkbox con 2 botones submit

gracias a los que respondieron

pero me quedo con la respuesta de MaBoRaK...... logico no?

pero ahora me encuentro con otro problema: "function validar_check() "

resulta que esta funcion la he utilizado en otra pagina donde solo valido checkbox y me funciona a la perfeccion en Firefox, pero ahora no me funciona y si pruebo en IE funciona bien que podra ser???

les dejo el codigo

Código PHP:
function llama(x){
        if (
== "1"){    // Guarda para el seleccionado
            
var validacion validar();
            if(
validacion != false){
                var 
accion "../control/guardar_comp_sesion.php";
                
window.document.form1.action accion;
                
self.document.form1.submit();
            }
        }
        else{    
// Guarda para varios
            
var validacion validar();
            if(
validacion != false){
                var 
val_check validar_check();
                if(
val_check == false){
                    
alert('NO HA SELECCIONADO NADA');
                    return 
false;
                }
                else{
                    var 
accion "../control/guardar_comp_varios.php";
                    
window.document.form1.action accion;
                    
self.document.form1.submit();
                }
            }
        } 
poniendo flags no me retorna el control despues de var val_check = validar_check(); (como dije antes, no funciona en Firefox)
Código PHP:
    function validar_check(){
        
contador=0;
        for(
i=0i<form1.elements.lengthi++)
            if(
form1.elements[i].type=="checkbox")
                if(
form1.elements[i].checked)
                    
contador++
        if(
contador == 0){
            return 
false;
        }
        else return 
true;
    } 
espero respuestas y agradezco a todos los que se toman tiempo de contestar.
  #5 (permalink)  
Antiguo 17/07/2008, 12:28
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Respuesta: funciones para validar input text y checkbox con 2 botones submit

loading.........

te faltó llaves. ;)
Código PHP:
function validar_check(){
        
contador=0;
        for(
i=0i<form1.elements.lengthi++)
            if(
form1.elements[i].type=="checkbox")
                if(
form1.elements[i].checked)
                    
contador++
        if(
contador == 0){
            return 
false;
        }
        else
        {
             return 
true;
        }
    } 
connection closed.
__________________

Maborak Technologies
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:10.