Duda: botones que son imagenes en JSP

la_luica
21 de Agosto del 2004
Estoy realizando una aplicación web mediante JSPs y no quisiera emplear los botones por defecto, sino unos diseñados mediante imagines.

Mi problema es que no consigo que funcionen como los botones normales (<input type='submit' name...>). A mi me interesaría que mis imagenes (botones):
* Cambiaran de forma cada vez que el ratón se pose sobre ellos (para lo cual empleo un <SCRIPT >)
* Manden información a un servlet controlador correctamente, para que dicho servlet pueda emplearla (request.getParameter("usuario")).

Ninguna de las dos cosas las consiguo. Mi código es el siguiente:

<%--
SCRIPT destinado a cambiar la imagen de un botón cuando el ratón le pase por encima
--%>
<SCRIPT language='JavaScript'>
function activarB(nombreImagen) {
if (document.images) {
var activado=new Image();
activado.src="file:///D:/Lua/@/AGUITUBOS/img/boton"+nombreImagen+"X.jpg";
document[nombreImagen].src=activado.src; }
}
function desactivarB(nombreImagen) {
if (document.images) {
var desactivado= new Image();
desactivado.src="file:///D:/Lua/@/AGUITUBOS/img/boton"+nombreImagen+".jpg";
document[nombreImagen].src=desactivado.src; }
}
</SCRIPT>
...

<%--
FORM destinado a enviar la informacion al servlet indicado (funciona correctamente con los botones normales)
--%>
<form action='/servlet/controlador' method="post">

<%--
FORMULARIO EN CUESTIÓN: Con los campos que deseo recoja el servlet y con la imagen haciendo de boton
--%>
<p align="right">
Usuario <input type="text" name="usuario" size=15></p>
<p align="right">
Contraseña <input type="password" name="contrasena" size=15></p>

<p align="right">
<input type=image src="botonEntrar.jpg" name="accion" value="login" target='marcoPpal' onMouseOver="activarB('Entrar');" onMouseOut="desactivarB('Entrar');"></p>
</form>
...

Tal vez ¿son incompatibles los JavaScript y el envio de info al servlet?

GRACIAS

Alex
21 de Agosto del 2004
Prueba a poner un <img src=''> con el onClick=''
el onClick para hacer un submit es
onClick=document.forms[0].submit()

OJO el 0 debe ser el número del formulario