Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

schumacker

Pegar todos os campos de um form

Recommended Posts

Como faço para pegar todos campos do formulário que estão dentro de determinados blocos de FIELDSET?

 

Exemplo:

 

<form name="frmAction" method="post" action="" onsubmit="return false;">		<fieldset id="etapa_1">		<legend>Dados Cadastrais</legend>			<label for="nome">Nome:</label>			<input type="text" name="nome" />					<label for="empresa">Empresa:</label>			<input type="text" name="empresa" />	</fieldset>	<input name="bot_1" type="button" value="Validar" onClick="Validar('etapa_1');">		<fieldset id="etapa_2">		<legend>Dados de Contato</legend>			<label for="email">E-mail:</label>			<input type="text" name="email" />					<label for="telefone">Telefone:</label>			<input type="text" name="telefone" />	</fieldset>	<input name="bot_2" type="button" value="Validar" onClick="Validar('etapa_2');">			<fieldset id="etapa_3">		<legend>Dados de Contato</legend>			<label for="email">E-mail:</label>			<input type="text" name="email" />					<label for="telefone">Telefone:</label>			<input type="text" name="telefone" />	</fieldset>	<input name="bot_3" type="button" value="Validar" onClick="Validar('etapa_3');"></form>
Tenho 3 grupos de fieldset e tudo está dentro de um único formulário.

 

Ao clicar no botão, por exemplo,

<input name="bot_2" type="button" value="Validar" onClick="Validar('etapa_2');">
, a função Validar('etapa_2'); passará como parâmetro o ID do fildset que a função deverá validar somente os campos dentro dele.

 

Como eu faço essa função para pegar esses campos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

document.getElementById("etapa_1").getElementsByTagName("input")
Assim você cria uma lista com todos os inputs que estão dentro do elemento com o id etapa_1.

document.getElementById("etapa_1").getElementsByTagName("input")[0]; // primeiro campodocument.getElementById("etapa_1").getElementsByTagName("input")[1]; // segundo campo// e assim vai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

lembrando q existem campos de formulario que podem nao ser input, tb tem select e textarea, entao voce poderia fazer assim:

 

//essa funcao converte uma colecao iteravel em um arrayfunction $A(ele) {  var arr = [];  while(var i = 0; i < ele.length; i++)	arr.push(ele[i]);  return arr;}function getForm(fieldset) {  var obj = document.getElementById(fieldset);  var elements = [];  elements = elements.concat($A(obj.getElementsByTagName("input"))); //adicionar inputs na lista  elements = elements.concat($A(obj.getElementsByTagName("textarea"))); //adicionar textareas na lista  elements = elements.concat($A(obj.getElementsByTagName("select"))); //adicionar selects na lista  return elements;}

prontinho ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.