Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho um formulário onde existem 3 inputs que podem ser duplicados ("x" vezes através de uma função) conforme a necessidade do usuário, porem ao clicar no submit, o formulário só pode pegar o primeiro input e assim gerar o resultado.
Assim, fiz uma função com um for, para que o formulário abra as "x" vezes adicionadas. Ou seja: Se eu adicionei 3 vezes os inputs, terá q abrir 3 abas com os resultados diferentes. Porem só esta abrindo o ultimo elemento criado, ou seja, uma aba.
No IE ele realiza a função corretamente. Porem no Firefox ou Chrome não vai.
abaixo a função para abrir:
function gerar(){
var cont = $('.pCont').length; //Conta a quantidade de inputs criados, pois as classes serão iguais
for (var i = 0; i < cont; i++){
var textPlano = document.getElementById("p"+i).value;
$('[name=plano]').val(textPlano);
var textCopay = document.getElementById("c"+i).value;
$('[name=copay]').val(textCopay);
var textDesc = document.getElementById("d"+i).value;
$('[name=desconto]').val(textDesc);
document.getElementById('formulario').submit();
}
}>
32 minutos atrás, Pita disse:
Olá @futzuki,
É isso que está fazendo, o seu for vai sobreescrevendo o valor dos inputs no final fica com o valor dos últimos.
var textPlano = document.getElementById("p"+i).value;
$('[name=plano]').val
Olá só, você pega o valor e joga na variável textPlano e na linha de baixo você atribui para o input, perdendo o valor que estava anteriormente
Olá Pita,
Sim esta é a ideia, que passe o valor para abrir novamente o formulário, ou seja. se eu criei 3 novos campos e mandei rodar a função:
primeiramente no for, o formulario vai pegar o valor do input "plano" e vai gerar com o primeiro campo que eu criei.
segundo vez no for, o formulario vai pegar o valor do input "plano" e vai gerar com o segundo campo que eu criei.
..... e assim por diante
porem, a linha de codigo: quando é para abrir o resultado do formulário.
document.getElementById('formulario').submit();
não está sendo gerada 3 vezes e sim apenas 1 vez, no caso na ultima.
Não posso realizar deste jeito? Estranho é que no IE ele roda perfeitamente.
Olá @futzuki,
É isso que está fazendo, o seu for vai sobreescrevendo o valor dos inputs no final fica com o valor dos últimos.