JavaScript

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

E como eu faço isso???

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!!!