Foros del Web » Programando para Internet » Javascript »

En que boton hicieron click?

Estas en el tema de En que boton hicieron click? en el foro de Javascript en Foros del Web. Hola amigos, He definido un formulario que contiene varios botones (submit), mas o menos asi: Código PHP: . . < input type = "submit"  id = ...
  #1 (permalink)  
Antiguo 19/08/2008, 16:47
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 10 meses
Puntos: 8
Pregunta En que boton hicieron click?

Hola amigos,

He definido un formulario que contiene varios botones (submit), mas o menos asi:

Código PHP:
.
.
<
input type="submit" id="ini" name="accion" value="Iniciar">
<
input type="submit" id="act" name="accion" value="Actualizar">
<
input type="submit" id="del" name="accion" value="Eliminar">
.
.

Mi duda es la siguiente: como se puede, mediante JavaScript, detectar sobre que boton el usuario hizo click? Observese que el name es igual para todo boton y el id es el que difiere

Necesito esto para realizar la validacion del formulario y si los datos son correctos se hace el llamado a un script php que se encarga de realizar las acciones correspondientes al boton sobre el cual se hizo click, mas o menos de esta forma:

Código PHP:
<?
if (isset($accion))
{
   switch (
$accion)
   {
         case 
"Iniciar":
               
bla;
               
bla;
               
bla:
         break;

         case 
"Actualizar":
               
bla;
               
bla;
               
bla:
         break;

         case 
"Eliminar":
               
bla;
               
bla;
               
bla:
         break;

   }
}
Agradezco de antemano sus valiosos aportes

Un Cordial Saludo
  #2 (permalink)  
Antiguo 19/08/2008, 21:02
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: En que boton hicieron click?

Fijate si así te sirve lo siguiente. Aunque debo decirte que contando con $_POST['accion'] del lado del servidor no sé muy bien para qué necesitás esto:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title></title>
<
script>
var 
Register=[];
function 
addEvent(objevTypefnuseCapture){
    if(
obj.addEventListener){
        
obj.addEventListener(evTypefnuseCapture);
    }else if(
obj.attachEvent){
        
obj.attachEvent("on"+evTypefn);
    }else{
        
obj['on'+evType]=fn;
    }


function 
detectar(e){
    
e=|| window.event;
    if(
e.preventDefault){
        
e.preventDefault();
    }else 
        
e.returnValue false;
    
alert(Register[Register.length-1]);
    return 
false;
}

function 
registrar(e){
    var 
e=|| window.event;
    var 
obj=e.target || e.srcElement;
    
Register.push(obj.id);
}
function 
inicio(){
    
addEvent(document'click'registrarfalse);
    
addEvent(document.getElementById("form1"), 'submit', function(e){return detectar(e);}, false);
    
    
}
window.onload=inicio;
</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
 <input type="submit" id="ini" name="accion" value="Iniciar">
<input type="submit" id="act" name="accion" value="Actualizar">
<input type="submit" id="del" name="accion" value="Eliminar">
</form>
</body>
</html> 
Ojo que detuve el envío del formulario con estas líneas:
Código PHP:
if(e.preventDefault){
        
e.preventDefault();
    }else 
        
e.returnValue false;
    
    return 
false
(Lo comento por si necesitás cambiar ese comportamiento.)

Última edición por Panino5001; 19/08/2008 a las 21:13
  #3 (permalink)  
Antiguo 20/08/2008, 07:41
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 10 meses
Puntos: 8
Respuesta: En que boton hicieron click?

Gracias Panino5001....

Despues de analizar y adecuar el script que me enviaste me funciono perfecto

Agradezco tu valiosa colaboracion. Mil y mil gracias

Un Cordial Saludo
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 00:51.