Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] boton tipo imagen

Estas en el tema de boton tipo imagen en el foro de Javascript en Foros del Web. Buenas tardes a todos, tengo un problema con una web a ver si me podrian ayudar.. estoy creando un boton tipo imagen con javascript createElement('input')... ...
  #1 (permalink)  
Antiguo 23/04/2013, 12:43
Avatar de oscard41  
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 288
Antigüedad: 11 años, 11 meses
Puntos: 8
boton tipo imagen

Buenas tardes a todos, tengo un problema con una web a ver si me podrian ayudar..

estoy creando un boton tipo imagen con javascript
createElement('input')...
y cuando lo inserto en mi pagina al darle click me manda el formulario de la pagina cosa que no deberia de ser por que tiene el atributo onclick para que haga otra funcion... :S

esto me pasa con IE 8 con los demas navegadores no.. e intentado con returnValue= false pero igual no accede al metodo... intente ver el error asi:

Código Javascript:
Ver original
  1. <input type='image' src='ruta' onclick='event.returnValue= false;try{nombreFuncion(event);}catch(e){alert(e);}' />
y en el alert me sale un error objecto....


de ante mano muchas gracias a los que me puedan ayudar...
  #2 (permalink)  
Antiguo 23/04/2013, 13:26
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: boton tipo imagen

pon el return false después de la llamada a tu función o que tu función regrese el false, o bien usa un tipo button, que no realiza el submit.
  #3 (permalink)  
Antiguo 23/04/2013, 13:32
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: boton tipo imagen

Código:
<form action="x.php">
<input type="image" src="F960.jpg" onclick="return false;" />
</form>
los inputs image, al igual que el type="submit" ó los <button>,si están dentro de un form, ejecutan el submit , basta que agregues onclick="return false;" para prevenirlo.
Asimismo si querés personalizar un botón submit, lo correcto sería que uitilices css, y no usar un type="image" que especificamente están hechos para otra cosa

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 23/04/2013, 14:53
Avatar de oscard41  
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 288
Antigüedad: 11 años, 11 meses
Puntos: 8
Respuesta: boton tipo imagen

Cita:
Iniciado por emprear Ver Mensaje
Código:
<form action="x.php">
<input type="image" src="F960.jpg" onclick="return false;" />
</form>
los inputs image, al igual que el type="submit" ó los <button>,si están dentro de un form, ejecutan el submit , basta que agregues onclick="return false;" para prevenirlo.
Asimismo si querés personalizar un botón submit, lo correcto sería que uitilices css, y no usar un type="image" que especificamente están hechos para otra cosa

Saludos
emprear yo use returnValue=false; y funciona pero no llama a la funcion que quiero que llame...

lo voy a hacer con css como me dices...

los input type image estan hechos para que otra cosa?

disculpen mi ignorancia...
  #5 (permalink)  
Antiguo 23/04/2013, 15:27
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: boton tipo imagen

Primero hay que definir el objetivo, que necesitás de ese botón, ¿que eventualmente haga un submit, o no?
A primera vista, uno se inclinaría por lo dicho por @ocp001a. utilizar un type="button". Pero hay variantes, supongamos que tenés un form para enviar con Ajax, y este, el Ajax, hace el post ó get, esto funcionaria
Código:
<form action="x.php">
<input type="button" value="enviar" onclick="procesaAjax()">
</form>

Pero que pasa si javascript está desactivado, el form, no se procesa, y vos querés que se procese de todas formas, entonces lo lógico es usar igualmente un botón submit, pero claro, vos querés que efectivamente envíe por Ajax y luego no redirija al action, entonces le aplicás un return false al botón submit

Mirá estos 2 ejemplos
Código:
<!DOCTYPE html>
<html lang="es-ar">
<head>
<meta charset="utf-8" />
<title>Html5</title>

<script type="text/javascript">
//<![CDATA[
function procesaAjax(){
alert('envio con ajax a x.php');
}

function miFuncion(){
document.getElementsByTagName('FORM')[0].style.border = "solid 5px #000";
return false;
}
//]]>
</script>
</head>
<body>
<form action="x.php">
<input type="image" src="F960.jpg" onclick="return miFuncion();" />
</form>


<form action="x.php">
<input type="text" name="nombre" />
<input type="submit" value="enviar" onclick="procesaAjax(); return false;" />
</form>
</body>
</html>
Con respecto al type="image", si bien hace un submit, está concebido para pasar como parámetros las coordenadas x e y del lugar dónde se hace click sobre la imagen
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 23/04/2013, 15:45
Avatar de oscard41  
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 288
Antigüedad: 11 años, 11 meses
Puntos: 8
Respuesta: boton tipo imagen

Cita:
Iniciado por emprear Ver Mensaje
Primero hay que definir el objetivo, que necesitás de ese botón, ¿que eventualmente haga un submit, o no?
A primera vista, uno se inclinaría por lo dicho por @ocp001a. utilizar un type="button". Pero hay variantes, supongamos que tenés un form para enviar con Ajax, y este, el Ajax, hace el post ó get, esto funcionaria
Código:
<form action="x.php">
<input type="button" value="enviar" onclick="procesaAjax()">
</form>

Pero que pasa si javascript está desactivado, el form, no se procesa, y vos querés que se procese de todas formas, entonces lo lógico es usar igualmente un botón submit, pero claro, vos querés que efectivamente envíe por Ajax y luego no redirija al action, entonces le aplicás un return false al botón submit

Mirá estos 2 ejemplos
Código:
<!DOCTYPE html>
<html lang="es-ar">
<head>
<meta charset="utf-8" />
<title>Html5</title>

<script type="text/javascript">
//<![CDATA[
function procesaAjax(){
alert('envio con ajax a x.php');
}

function miFuncion(){
document.getElementsByTagName('FORM')[0].style.border = "solid 5px #000";
return false;
}
//]]>
</script>
</head>
<body>
<form action="x.php">
<input type="image" src="F960.jpg" onclick="return miFuncion();" />
</form>


<form action="x.php">
<input type="text" name="nombre" />
<input type="submit" value="enviar" onclick="procesaAjax(); return false;" />
</form>
</body>
</html>
Con respecto al type="image", si bien hace un submit, está concebido para pasar como parámetros las coordenadas x e y del lugar dónde se hace click sobre la imagen
Saludos
Nuevamente Gracias por tu ayuda (Y)

Etiquetas: boton, formulario, funcion, input, tipo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:30.