Jump to content


Photo

Formulário Dinâmico


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 Edgard A Michel

Edgard A Michel

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Masculino
  • Localidade:São Paulo/SP

Posted 26/11/2010, 09:41

Olá a todos do Forum!

Tenho um script que adiciona campos em um formulário.
Hoje esse script adiciona um input-text e um botão passando sempre os valores que foram digitados no último campo.
O problema é que agora preciso que esse script adicione DOIS input-text mais o botão passando os valores.
Alguem poderia me ajudar?

O script:
function addInput(divPai,nomeElemento,numeroDeFilhos,sizeInput) {		
 			var DivElementoPai = document.getElementById(divPai);
 			// somo mais 1 para que o elemento comece com name=elemento[1]
 			// pois por padrão já existe um elemento com name=elemento[0]
 			var elementos = DivElementoPai.childNodes.length+1;
 			var elementInput = document.getElementById(nomeElemento+'[0]')
 			if(elementInput.value != ""){
 							
 				if (DivElementoPai.childNodes.length < numeroDeFilhos){ 	            
 					var NovoDiv = document.createElement('div');
 					var valorElementoImput = elementInput.value;
 					elementInput.value = "";					
 					NovoDiv.setAttribute("id",nomeElemento+elementos);
 					NovoDiv.setAttribute("valign","top");					
 					NovoDiv.innerHTML = '<input type="text" name='+nomeElemento+'['+elementos+'] id='+nomeElemento+'['+elementos+'] value='+"\'"+valorElementoImput+"\'"+' size='+sizeInput+'> <input type="button" value="X" onClick="delElemento('+"\'"+divPai+"\',\'"+nomeElemento+elementos+'\')"\><br> ';					
 					DivElementoPai.appendChild(NovoDiv);		            
 	            }
             }
         }
         function delElemento(divPai,divNum){
             var d = document.getElementById(divPai);
             var oldElem = document.getElementById(divNum);
             	
             if (confirm('Tem certeza que quer apagar: \n'+"\""+oldElem.firstChild.value+"\" ?")) {
 	            //remove o elemento 
 	            d.removeChild(oldElem);
             }
         }

O Formulário atual:
<form action="DocumentoManagerAction.insert.mtw" method="post" name="formInsertDocumento">
 <table>
 	<tr>
 		<td ><label for="docTitulo">Titulo Documento</label></td>
 	</tr>
 	<tr>
 		<td><input name="docTitulo" id="docTitulo" size="45" type="text"></td>			
 	</tr>
 	<tr>
 		<td><label for="autor">Autores: </label></td>		
 	</tr>
 	<tr>
 		<td valign="top">						  
 			<input name="autores[0]" id="autores[0]" size="45" type="text">
 			<input type="button" nme="add" value="+" onclick="addInput('divAutores','autores',4,45)" >
 			<div id="divAutores"></div>
 		</td>		
 	</tr>
 </table>
 <br/>
 <br/>
 <input type="submit" value="enviar">
 </form>

O novo formulário:
<form action="DocumentoManagerAction.insert.mtw" method="post" name="formInsertDocumento">
 <table>
 	<tr>
 		<td ><label for="docTitulo">Titulo Documento</label></td>
 	</tr>
 	<tr>
 		<td><input name="docTitulo" id="docTitulo" size="45" type="text"></td>			
 	</tr>
 	<tr>
 		<td><label for="autor">Autores: </label></td>		
 	</tr>
 	<tr>
 		<td valign="top">						  
 			<input name="autores[0]" id="autores[0]" size="45" type="text">
 			<input name="numero[0]" id="numero[0]" size="10" type="text">
 			<input type="button" nme="add" value="+" onclick="addInput('divAutores','autores',4,45)" >
 			<div id="divAutores"></div>
 		</td>		
 	</tr>
 </table>
 <br/>
 <br/>
 <input type="submit" value="enviar">
 </form>

Obrigado!

Olá a todos.
Consegui resolver esse.

function addInput(divPai,nomeElemento,nomeElemento1,sizeInput,sizeInput1) {		
 			var DivElementoPai = document.getElementById(divPai); //Pega e define um ID para o div(NODE) passado a função
 			// somo mais 1 para que o elemento comece com name=elemento[1]
 			// pois por padrão já existe um elemento com name=elemento[0]
 			var elementos = DivElementoPai.childNodes.length+1; //
 			var elementInput = document.getElementById(nomeElemento+'[0]')
			var elementInput1 = document.getElementById(nomeElemento1+'[0]')
 			if(elementInput.value != ""){
 							
 				//if (DivElementoPai.childNodes.length < numeroDeFilhos){ 	            
 					var NovoDiv = document.createElement('div');
 					var valorElementoImput = elementInput.value;
					var valorElementoImput1 = elementInput1.value;
 					elementInput.value = "";
					elementInput1.value = "";					
 					NovoDiv.setAttribute("id",nomeElemento+elementos);
					NovoDiv.setAttribute("id",nomeElemento1+elementos);
 					NovoDiv.setAttribute("valign","top");					
 					NovoDiv.innerHTML = '<input type="text" name='+nomeElemento+'['+elementos+'] id='+nomeElemento+'['+elementos+'] value='+"\'"+valorElementoImput+"\'"+' size='+sizeInput+'><input type="text" name='+nomeElemento1+'['+elementos+'] id='+nomeElemento1+'['+elementos+'] value='+"\'"+valorElementoImput1+"\'"+' size='+sizeInput1+'> <input type="button" value="X" onClick="delElemento('+"\'"+divPai+"\',\'"+nomeElemento+elementos+'\')"\><br> ';					
 					DivElementoPai.appendChild(NovoDiv);		            
 	           // }
             }
         }
         function delElemento(divPai,divNum){
             var d = document.getElementById(divPai);
             var oldElem = document.getElementById(divNum);
             	
             if (confirm('Tem certeza que quer apagar: \n'+"\""+oldElem.firstChild.value+"\" ?")) {
 	            //remove o elemento 
 	            d.removeChild(oldElem);
             }
         }


Obrigado




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq