Problema leer elementos de formulario

Estado
Cerrado para nuevas respuestas.

VenenoxHC

Usuario Casual nvl. 2
30 Nov 2008
1.555
2
37
el bosque
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,,,

Código:
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.

Código:
<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.

Código:
<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>
 
Última edición:
gracias por compartir la solucion avisare para que manden el tema a resueltos ! :)
 
Estado
Cerrado para nuevas respuestas.