Ir para conteúdo

Arquivado

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

italo14

Obter valores de input criados dinamicamente JS

Recommended Posts

Então pessoal, tenho vários forms que são criados de forma dinâmico, ex:

 

<form method="POST" onsubmit="enviarcoment();">
  <textarea type="text" class="form-control" id="comentario" name="comentario" placeholder="Write comment..."> </textarea>
  <input type="hidden" id="idpost" name="idpost" value="imagine_aqui_um_num_aleatorio">
  <input type="submit" value="enviar">
</form>
...
<form method="POST" onsubmit="enviarcoment();">
  <textarea type="text" class="form-control" id="comentario" name="comentario" placeholder="Write comment..."> </textarea>
  <input type="hidden" id="idpost" name="idpost" value="imagine_aqui_um_num_aleatorio_2">
  <input type="submit" value="enviar">
</form>

E todos esses forms estão na mesma página e tenho essa função JS:

 

function enviarcoment(){
comentario = $('#comentario').val();
idpost = $('#idpost').val();

$.post('funcoes/enviar_coment.php',{comentario: comentario, idpost: idpost},function(data){
if(data == 0){
alert('Comentario enviado');
}
else{
alert(data);
}
}) 
return false;
}
O envio acontece mas o problema é que sempre são enviados os valores do primeiro form, isso acontece pq os ID's são iguais...
Como proceder?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ID deve ser algo único. É a identidade de um único elemento e que não pode ser replicado. Entende?

Tenta fazer um counter com soma pra por exemplo, o form 1 ter a classe: form-1, a dois ter form-2 e por ai vai. Isso não é muito trabalhoso de ser feito e pelo menos não é mais pra dar bugs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já resolvi, no form ficará assim:

<form method="POST" onsubmit="enviarcoment(this);">
  <textarea type="text" class="form-control" id="comentario" name="comentario" placeholder="Write comment..."> </textarea>
  <input type="hidden" id="idpost" name="idpost" value="imagine_aqui_um_num_aleatorio">
  <input type="submit" value="enviar">
</form>

no js:

function enviarcoment(form){
comentario = form.comentario.value;
idpost = form.idpost.value;

$.post('funcoes/enviar_coment.php',{comentario: comentario, idpost: idpost},function(data){
if(data == 0){
alert('Comentario enviado');
}
else{
alert(data);
}
}) 
return false;
}

Mesmo tendo vários forms com id iguais, desta forma eu consigo trabalhar com valores do form q eu escolhi para preencher os dados

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.