Seleccionar campos en tablas de jsp

Estoy trabajando con JSP, y tengo una tabla de tres columnas, hasta ahora, al ponerme sobre un campo de la misma se seleccionaba, mi intención es que se seleccionen los otros dos campos de la fila, con este código solo selecciono uno, como puedo hacer esto, os dejo el código que va en cada campo.
<td align="center" style="padding-left:.3em;cursor:pointer;height:1.5em;bo rder-bottom:1px solid black;font-size:.8em;overflow-x:hidden;display:block;width:a uto;">
<div title ="<%=num%>" class="unselected" id="campouno${datos.nombre}"
onmouseover="sobrecampo(this)"
onmouseout="fueracampo(this)"
onclick="seleccionacampo(${datos.nombre},this)" value="${datos.nombre}"><%=num%></div& gt;
</td>

1 respuesta

Respuesta
1
El comportamiento que describes probablemente se active con los eventos onmouseover y onmouseout. Estos eventos llaman a unas rutinas en Javascript llamadas sobrecampo() y fueracampo() que son seguramente las que 'seleccionan' el campo como dices.
Deberías modificar esas rutinas Javascript para que realicen la nueva selección como tu quieras.
Hola estas son mis dos funciones:
function sobrecampo(elt){
unselectAll()
campouno.className="selected"
campodos.className="selected"
campotres.className="selected"
}
function fueracampo(elt){
if (!elt.selected)
campouno.className="unselected"
campodos.className="unselected"
campotres.className="unselected"
}
El problema que tengo es que no hacen lo que les pido, no se donde pude estar el error
No veo en las rutinas la asignación de campouno, campodos y campotres que deberían apuntar a los objetos a los que quieres cambiar la clase.
Suponiendo que estén bien inicializados, también deberías comprobar que existen las clases "selected" y "unselected" y que especifican los estilos que deseas.
Aquí tienes el código:
function incelda(elt){
unselectAll()
elt.className="selected"
}
function outcelda(elt){
if (!elt.selected)
elt.className="unselected"
}
</script>
<style type="text/css">
.selected { background-color: black; color: white;}
.unselected { background-color: white; color: black;}
</style>
<div id="celda">
<table border="0" cellpadding="1" cellspacing="0">
<tr>
<table>
<c:forEach var="tl" items="${celdas.rows}">
<tr>
<td >
<div title ="${celdas.nombre}" class="unselected" id="celda${celdas.nombre}"
onmouseover="incelda(this)"
onmouseout="outcelda(this)"
onclick="seleccionacelda(${celdas.nombre},this)" value="${celdas.nombre}"</div>
</td>
Al final hice este código para que coja una celda por lo menos no se como hacer para que me coja una fila entera, espero que me puedas ayudar por que he probado de todo un saludo y gracias
Puesto que quieres seleccionar toda la fila, lo adecuado es que los eventos y las clases se asignen a la etiqueta de fila 'tr'.
El código sería como el siguiente:
<script type="text/javascript">
function infila(obj) {
obj.className = "selected";
}
function outfila(obj) {
obj.className = "unselected";
}
</script>
<style type="text/css">
.selected > td > div { background-color: black; color: white;}
.unselected > td > div { background-color: white; color: black;}
</style>
<div id="celda">
<table border="0" cellpadding="1" cellspacing="0">
<tr>
<table>
<c:forEach var="tl" items="${celdas.rows}">
<tr onmouseover="infila(this)"
onmouseout="outfila(this)">
<td>
<div title ="${celdas.nombre}" class="unselected" id="celda${celdas.nombre}"
onclick="seleccionacelda(${celdas.nombre},this)" value="${celdas.nombre}"</div>
</td>
Hola, he probado el código que me as puesto y al entrar en una fila si cambia de color la fila entera pero al salir se queda con el mismo color, estuve mirando pero en principio debería de funcionar no se que puede pasar, un saludo y gracias
Hay dos explicaciones posibles: una que el estilo unselected no está definido o está mal escrito; y la otra que hayas dejado activada alguna de las otras rutinas javascript y estén interfiriendo.
Yo lo probé antes de enviártelo y funcionaba correctamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas