Oi Gente,
Tenho um .jcl com um forEach que preenche uma tabela na tela… essa tabela tem vários campos e registros… Um desses campos é uma textarea (editável).
Como faço para como faço para o evento onchange dessa text área chamar uma função javascript passando o conteúdo que está sendo editado (que pode ser qualquer registro da tabela).
Hoje eu passo apenas o que está no property da text área e aí só funciona para o primeiro registro da tabela!!!
Obrigada a quem possa ajudar!!!
[code]<c:forEach varStatus=“index” …>
">
Bla bla |
Bla bla aa |
Bla bla bbbb |
);"> |
[/code]
Eh isso q vc queria?
Eu tentei, mas apareceu o erro abaixo…
Impossível criar um atributos xml do nome [${index.count}] valor [ />);]
Esse é um exemplo do que eu tenho… E que só funciona para o primeiro registro da tabela…
<c:forEach var=“b” items="${resultado}"
varStatus=“status”>
<TR>
<TD><html:textarea property="descricao"
onchange="conta()"
onkeyup="conta()"
styleClass="text" value="${b.descricao}" rows="5"
cols="100" style="textarea"></html:textarea>
</TD>
</TR>
</c:forEach>
function conta(){
//alert(document.getElementById(‘descricao’).value);
var x = document.getElementById(‘descricao’).value.length;
var rest = 500 - x;
if (rest <= -1 ){
alert(‘Limite de 500 caracteres’);
document.forms.descricao.focus();
return false;
}
document.getElementById(‘total’).value = rest;
}
[code]
<html:textarea onchange=“conta(${status.count})” …
function conta(number){
var x = eval(“document.forms[0].descricao[”+(number - 1)+"]");
var rest = 500 - x.value.length;
if (rest <= -1 ){
alert(‘Limite de 500 caracteres’);
x.focus();
return false;
}
document.getElementById(‘total’).value = rest;
}[/code] O erro acontecia porque o campo textarea dentro do loop se transforma em um array.
Vou tentar…
Tem como retornar o índice de quem está sendo alterado???