Problema leer elementos de formulario

Discussion in 'Casos Resueltos Informáticos' started by VenenoxHC, Nov 22, 2012.

Thread Status:
Not open for further replies.
  1. VenenoxHC

    VenenoxHC Usuario Casual nvl. 2
    187/244

    Joined:
    Nov 30, 2008
    Messages:
    1,780
    Likes Received:
    1
    Hi for all,

    Hoy tengo un evento mas o menos.

    tengo que leer elementos de formulario que estén dentro de una tabla,,, o div,,,

    Miren tengo un check que marca y desmarca todos los check dentro de un formulario,,, ok?
    Luego tuve que separar check en grupos y cada grupo tiene un check que marca y desmarca.

    para marcar y desmarcar todos los check utilizo una funcion javascript que me lee todos los check dentro de un formulario y asi los marca y los desmarca,,,

    Code:
    function selydestodos(form,activa){
        if(activa==true){
        for(i=0;i<form.elements.length;i++){
            if(form.elements[i].type=="checkbox"){
                form.elements[i].checked=true;
                document.getElementById('cbxnosepresenta').checked=false;
                <!--document.getElementById('cbxsinagenda').checked=false;-->
            }
              if(form.elements[i].type == "text"){
                 if(document.getElementById("txt_run")==form.elements[i] || 
                    document.getElementById("txt_nombre")==form.elements[i] ||
                    document.getElementById("txt_sexo")==form.elements[i] ||
                    document.getElementById("txt_edad")==form.elements[i]){
                        
                }else{
                     form.elements[i].value="1";
                    form.elements[i].style.backgroundColor="#ffffff";
                    form.elements[i].disabled=false;
                    }    
            }            
        }
        }
        if(activa==false){
        for(i=0;i<form.elements.length;i++){
            if(form.elements[i].type=="checkbox"){
                form.elements[i].checked=false;
            }
              if(form.elements[i].type == "text"){
                 if(document.getElementById("txt_run")==form.elements[i] || 
                    document.getElementById("txt_nombre")==form.elements[i] ||
                    document.getElementById("txt_sexo")==form.elements[i] ||
                    document.getElementById("txt_edad")==form.elements[i]){
                }else{
                     form.elements[i].value="0";
                    form.elements[i].style.backgroundColor="#eeeeee";
                    form.elements[i].disabled=true;
                    }
                    
            }            
        }        
      }
    }
    
    Entonces el problema es que al momento de apretar uno de los check que marcan y desmarcan, se marcan todos los grupos y quiero que se marquen los check de un solo grupo.

    bueno los separe por formularios cada grupo y queda perfect. pero esto me genera otro problema,,, que al momento de grabar todos los checks seleccionados no me graba nada,,, ya que el formulario de grabado esta asi.

    Code:
    <form name="formulario.de.grabado">
         <form name="grupo.1">
         </form>
         <form name="grupo.2">
         </form>
         <form name="grupo.3">
         </form>
    </form>
    cachan? puxa no redacte bien la wea pero espero que entiendan y me ayuden.

    consultas las respondo en un abrir y cerrar de ojos



    SOLUCIÓN: ----------------------------------------------
    creo automaticamente una función por grupo y creo variables dependiendo las cantidades de actividades de ese grupo.

    Code:
    <script>
    function selydestodosunoauno<? echo $f1["cg"]; ?>(form,activa){
    if(activa==true){
    for(i=0;i<form.elements.length;i++){
    		if(form.elements[i].type=="checkbox"){
    <? foreach($m2 as $f2){ echo "document.getElementById('chk".$f2['codact']."').checked=true;"; }?>
    			document.getElementById('cbxnosepresenta').checked=false;
    		}
          	if(form.elements[i].type == "text"){
    			 if(document.getElementById("txt_run")==form.elements[i] || 
    				document.getElementById("txt_nombre")==form.elements[i] ||
    				document.getElementById("txt_sexo")==form.elements[i] ||
    				document.getElementById("txt_edad")==form.elements[i]){
    					
    			}else{
    <? foreach($m2 as $f2){ echo "document.getElementById('txt".$f2['codact']."').value=\"1\";"; }?>
    <? foreach($m2 as $f2){ echo "document.getElementById('txt".$f2['codact']."').style.backgroundColor=\"#ffffff\";"; }?>
    <? foreach($m2 as $f2){ echo "document.getElementById('txt".$f2['codact']."').disabled=false;"; }?>
    				}	
    		}			
    	}
    	}
    	if(activa==false){
    	for(i=0;i<form.elements.length;i++){
    		if(form.elements[i].type=="checkbox"){
    <? foreach($m2 as $f2){ echo "document.getElementById('chk".$f2['codact']."').checked=false;"; }?>
    		}
          	if(form.elements[i].type == "text"){
    			 if(document.getElementById("txt_run")==form.elements[i] || 
    				document.getElementById("txt_nombre")==form.elements[i] ||
    				document.getElementById("txt_sexo")==form.elements[i] ||
    				document.getElementById("txt_edad")==form.elements[i]){
    			}else{
    <? foreach($m2 as $f2){ echo "document.getElementById('txt".$f2['codact']."').value=\"0\";"; }?>
    <? foreach($m2 as $f2){ echo "document.getElementById('txt".$f2['codact']."').style.backgroundColor=\"#eeeeee\";"; }?>
    <? foreach($m2 as $f2){ echo "document.getElementById('txt".$f2['codact']."').disabled=true;"; }?>
    
    
    			}
    		}			
    	}	
      }
    }
    </script>
    
     
    #1 VenenoxHC, Nov 22, 2012
    Last edited: Nov 22, 2012
  2. Aguil@

    Aguil@ Usuario Habitual nvl.3 ★
    197/244

    Joined:
    Oct 10, 2007
    Messages:
    13,935
    Likes Received:
    38
    gracias por compartir la solucion avisare para que manden el tema a resueltos ! :)
     
  3. AL2_

    AL2_ Usuario Habitual nvl.3 ★
    187/244

    Joined:
    Apr 25, 2009
    Messages:
    20,230
    Likes Received:
    12
Thread Status:
Not open for further replies.