Botão + para adicionar campos ao Formulário (JavaScript, HTML ou PHP)

precisa, pelo menos um dos dois

pq, n entendi qual é o problema de serem iguais

Porque na hora de serem passados pro banco de dados as informações eu tenho que ter a diferenciação dos campos

na hora de gravar no banco vc vai fazer 3 foreach uma pra cada campo.

Então não precisa?

E se eu duplico o campo com um valor dentro o valor passa pro novo campo, tem como dar um clear nisso?

Valeu

isso aqui deveria limpar os campos

    var camposClonados = clone.getElementsByTagName('input');  
      
    for(i=0; i<camposClonados.length;i++){  
        camposClonados[i].value = '';  
    } 

está assim:

[code]var camposClonados = clone.getElementsByTagValue(’+’);

for(i=0; i&lt;camposClonados.length;i++){
	camposClonados[i].value = '';
}[/code]&gt;

deixa input no lugar do ‘+’

Troquei e ele continua clonando as informações

eu uso essa função para limpar campos…

[code]

[/code]

No caso tenho 3 radio buttons, e quando seleciono um, limpo os outros dois…

[quote=Pacato]eu uso essa função para limpar campos…

[code]

[/code]

No caso tenho 3 radio buttons, e quando seleciono um, limpo os outros dois…

[/quote]

bacana

Aqui esta os botões de radio completos… passei dificuldade para adaptar, para enviar para o form o que eu digitei e apagar e ocultar os outros…

<script type="text/javascript">
function mostraCampo(value) {
	if(value==1){
	   document.form.dispositivoCL.style.visibility = "visible";
	   document.form.simcardCL.style.visibility = "hidden";
	   document.form.linhaCL.style.visibility = "hidden";
	   limpaCampo( 'simcardCL', 'linhaCL' );
	} else if (value ==2){
		 document.form.simcardCL.style.visibility = "visible";
		 document.form.dispositivoCL.style.visibility = "hidden";
		 document.form.linhaCL.style.visibility = "hidden";
		 limpaCampo( 'dispositivoCL', 'linhaCL' );
	} else {
		document.form.linhaCL.style.visibility = "visible";
		document.form.dispositivoCL.style.visibility = "hidden";
		document.form.simcardCL.style.visibility = "hidden";
		limpaCampo( 'dispositivoCL', 'simcardCL' );
	}
}
</script>

<script type="text/javascript">
function OnSubmitForm(){  
	if(document.form.dispositivoCL.checked == true)  {    
		document.form.dispositivoCL.onsubmit;  }  
	else if(document.form.simcardCL.checked == true)  {    
		document.form.simcardCL.onsubmit;  }  
	else {
		document.form.linhaCL.onsubmit;  }
	return true;
}
</script> 

<script type="text/javascript">
function limpaCampo( id_campo1, id_campo2 ){        
	document.getElementById( id_campo1 ).value = "";
	document.getElementById( id_campo2 ).value = "";
}
</script> 


<body> 
	<center>
	<form name="form" id="form" action="ServletPesquisa" method="get">
			<div class="titulo"> Sistema Gest&atilde;o SIM Card <br><br></div>
			<div class="titulo"> =-= CONSULTA COLETIVA =-= </div>
	<br>
	<br>
	<table border="1px">
		<tr class="tabela">
			<td>
			<input type="radio" name="chk1" id="chk1" onclick="javascript:mostraCampo(1);" value="1" />
			Dispositivo: <input type="text" size="22" name="dispositivoCL" id="dispositivoCL" style="visibility:hidden;" />
			
			<input type="radio" name="chk1" id="chk1" onclick="javascript:mostraCampo(2);" value="2" />
			SIMCard: <input type="text" size="22" name="simcardCL" id="simcardCL" style="visibility:hidden;" />
			
			<input type="radio" name="chk1" id="chk1" onclick="javascript:mostraCampo(3);" value="3" />		
			Linha: <input type="text" size="22" name="linhaCL" id="linhaCL" style="visibility:hidden;" />
			</td>
		</tr>	
	</table>
	<br>
	<br>
	<input type="submit" value="Pesquisar" />
	<br>
	<br>
	</form>
</body>

Cara, que tal você usar uma framework JS para tratar disso? Você faz isso com muita simplicidade, além de trabalhar com um conceito MVVM no Javascript.

Dê uma olhada no Knockout.js e no AngularJS, as duas que eu mais gosto. Talvez te interesse, pois acho muito produtivo o uso desse tipo de framework (eu uso AngularJS, normalmente, mas o Knockout.js também é fantástico!). Com elas, você cria seus objetos em um escopo da sua página, e pode fazer essa sua “criação de uma nova linha” bem simples, apenas adicionando um objeto no array do escopo e a View já reconhece isso!

Espero ter ajudado,
fique com Deus! :smiley:

vou dar uma olhada.