Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Tenho uma um formulário dinamico, onde pode aparecer várias textareas, e por padrão, essas textareas tem o mesmo id e o mesmo name, porém, o name esta sendo enviado como array (name="nomecampo[]").
Queria saber como faço pra validar todos essas textareas no javascript, porque preciso verificar se essas textareas tem menos de 10 caracteres.
A textarea esta assim:
<textarea class="form-control txta" rows="4" name="descr_icon[]" id="descri_icon" ></textarea>
E como o formulario é dinamico, pode aparecer uma, nenhuma, ou várias textareas iguais a esta, e preciso validar no javascript (preciso que seja puro, nao posso utilizar jquery) cada textarea desta, mas a validação é a mesma para todas.
Encontrei algumas soluções contando o indice das textareas pelo name, mas no meu caso o name esta passando como array, entao nao deu certo.
O que encontrei foi mais ou menos assim:
function validacao(nomecampo) {
var total = document.getElementsByName(nomecampo);
for(i = 0; i < total.lenght; i++) {
if (document.getElementByName(i) < 10) {
alert('Erro');
return (false);
}
}
}
E na chamada da função:
<textarea name="camponome" id="camponome"></textarea>
<button onclick="validacao('camponome')"></button>
Mas como disse, isso não funcionou no meu caso porque passo o name como array (nomecampo[]).
Alguém saberia alguma posssivel solução?@Gabrielvt14, algumas regras do HTML:
Não repetir o ID, o ID é único.
Se possível, não repita também o name, a não ser no caso de radio e checkbox, isso porque o usuário pode digitar uma virgula(,) e bagunçar sua lógica no momento do submit para recuperar essas informações.
Evite colocar "[]{}()" e outros caracteres "diferentes" no name/ID
Provavelmente você está criando essas várias textareas, ou via javascript, ou via uma linguagem serverside(PHP, C#, etc), altera um pouco sua lógica para criar uma variável contador e ir concatenando esse contador no name/ID, assim você garante que não vai ter name/ID repetidos