JavaScript

9 respostas
foxpv

ola pessoal,
bom… tenho um form com varios multibox de propertys e values diferentes e to precisando d uma funcao em jaav script que marque todos esses multibox… alguem aqui manja alguma coisa de JavaScript pra me ajudar??
valew!!!

9 Respostas

J

Segue uma função bem básica:

<script> function marcaDesmarcaTudo(valor) { var form = document.forms[0]; for (var i=0;i<form.campoMultiBox.length;i++) { form.campoMultiBox[i].checked = valor; } } </script>

.... .... <input type="button" name="botMarca" value="Marca Todos" onClick="marcaDesmarcaTudo(true)"> <input type="button" name="botDesMarca" value="Desmarca Todos" onClick="marcaDesmarcaTudo(false)"> .... ....

foxpv

cara… esse campoMultibox aí seria o prperty do multibox? pq eu tenho varios multibox com o property diferente sacou?
o código esta assim:

<html:multibox  property="marcaDesmarca" value="marcaDesmarca"  onclick="JavaScript: marcaDesmarca(true);" onchange="JavaScript: marcaDesmarca(true);"/>
function marcaDesmarca(){
  			var form = document.forms[0];
   			for (var i=0;i<form.campoMultiBox.length;i++) {
      			 form.campoMultiBox[i].checked = valor;
   			}
		}
J

Aaaaaaaaaaaaaaaaa bom…

Eu entendi outra coisa.

Então esse multibox (Struts) serão campos checkbox certo?

E se eles têm nomes diferentes de duas uma, ou você acessa campo a campo ou, você faz um loop nos objetos do form que são do tipo checkbox e marca eles.

M

Fazendo um loop em todos os objetos do tipo checkbox:

function selecionar_tudo(){ 
   for (i=0;i<document.form1.elements.length;i++)
   if(document.form1.elements[i].type == "checkbox") 
      document.form1.elements[i].checked=1 
}
foxpv

blz… entendi… mas os componentes do meu form são html:multibox… msm assim essa comparação if(document.form1.elements[i].type == “checkbox”)
dah certo?

J

Mas claro, html:multibox resultará num checkbox. Veja o código fonte da sua página HTML e verá que terá vários campos checkbox.

foxpv

opa, tipo… entendi q q eu tenho q fazer mas agora to com um probleminha, eu não to conseguindo chamar a funcao que eu criei, no meu codigo esta assim:

......
<body>
  	<SCRIPT>
  		function marcaDesmarca(){
			alert("passou");
		  	for (i=0;i<registerFormOld.elements.length;i++){
    			if(registerFormOld.elements[i].type == "checkbox"){ 
		    		registerFormOld.elements[i].checked=1;
    			}
		    }
		}
  	</SCRIPT>
......
<html:button  property="marcaDesmarca" value="marcaDesmarca"  onclick="JavaScript: return marcaDesmarca();"  />
.....

só que quando eu clico no botão não esta exibindo o alert q eu coloquei, alguem sabe oq pode estar acontecendo?
vlw ae…
e foi malz minha falta de pratica com java script…heheheh

foxpv

conseguir chamar a função… e funcionou… mas pela metade… tipo… na hora de desmarcar os multibox eu to fazendo:
registerFormOld.elements[i].checked=“false”;
soh q naum tah desmarcando…
tem q fazer outra coisa pra desmarcar?

J

Ops, tem um erro aí.

É registerFormOld.elements[i].checked = false;
sem aspas pois é um valor booleano e não uma string, blz?

Criado 16 de junho de 2006
Ultima resposta 19 de jun. de 2006
Respostas 9
Participantes 3