Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Formulário Dinâmico


Edgard A Michel

Pergunta

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.

alguém 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!

Editado por Edgard A Michel
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá a todos!

Consegui resolver, foi fácil até demais...

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.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...