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!!!
Tente assim :
</c:choose>
<td width="60%" class="style3"><c:out value="${cidade.descricao}"/></td>
<td width="30%" class="style3">
<c:choose>
<c:when test="${cidade.regional==1}">LESTE</c:when>
<c:when test="${cidade.regional==2}">MANTIQUEIRA</c:when>
<c:when test="${cidade.regional==3}">METALÚRGICA</c:when>
<c:when test="${cidade.regional==4}">NORTE</c:when>
<c:when test="${cidade.regional==5}">OESTE</c:when>
<c:when test="${cidade.regional==6}">VALE DO AÇO</c:when>
<c:when test="${cidade.regional==7}">TRIÂNGULO</c:when>
<c:when test="${cidade.regional==8}">OUTRAS BASES</c:when>
</c:choose>
</td>
<td width="10%"><input type="image" src="${pageContext.request.contextPath}/images/view16.gif" onclick="enviar('ler','<c:out value="${cidade.id}"/>','<c:out value="${cidade.registro}"/>')"/></td>
Deu um erro que não consegue construir o “cidade.id”…
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”>
|
|
</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;
}
Marcia, cidade.id é um campo do meu Bean, não vai funcionar mesmo ae.
Seguinte : note que no meu exemplo todos os registros têm um Id correspondente, este Id passo através do meu Servlet para o JSP.
<input type="image" src="${pageContext.request.contextPath}/images/view16.gif" onclick="enviar('ler','<c:out value="${cidade.id}"/>','<c:out value="${cidade.registro}"/>')"/>
Este está dentro de cada linha de minha tabela que fica ± assim :
Descricao Regional ImageLink
Quando o usuario escolher o registro ele clica no Link correspondente, este link vai chamar a função enviar e passar o ID da cidade escolhida (cidade.registro é outra coisa - não se preocupe).
Esta função faz o submit do form passando para o Servlet o ID da cidade escolhida.
abs
Vimieiro
Então no caso que eu citei não seria o b.id ???
Pois o b é o minha variável do forEach…
No seu caso sim, mas vc tem que passar o ID do registro do Servlet para o JSP, no seu código me parece que está sendo passado apenas a Descricao.
Conserte isso que deve funcionar.
Vimieiro
Ué, seu Objeto não é descricao ? Acredito que deve representar uma tabela de seu BD (tá meio esquisito o termo descricao mas deve ser isso mesmo).
Basta passar tb o ID da tabela
Veja um exemplo de minha tabela Cidade :
stmt = con.prepareStatement("select * from cidade order by descCidade");
ResultSet rs = stmt.executeQuery();
while (rs.next()){
cidade = new CidadeVO();
cidade.setId(rs.getInt(1));
cidade.setDescricao(rs.getString(2));
No meu caso, cidade é um objeto que representa o NetBean CidadeVO que por sua vez possui os Getteres e Setteres da Tabela cidade.
Qual o nome de sua tabela ???
Na verdade o que eu queria saber era como mandar o objeto para a função javascript…
E descobri que é atrvés do “this”.
Obrigada!!!