Foros del Web » Programando para Internet » Javascript »

ejecutar javascript si la necesidad de un boton

Estas en el tema de ejecutar javascript si la necesidad de un boton en el foro de Javascript en Foros del Web. Hola a todos, estoy muy verde en el uso de javascript y pues por tal razon vengo a ustedes a pedir su ayuda, bueno el ...
  #1 (permalink)  
Antiguo 14/10/2009, 14:58
 
Fecha de Ingreso: agosto-2009
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 2
ejecutar javascript si la necesidad de un boton

Hola a todos, estoy muy verde en el uso de javascript y pues por tal razon vengo a ustedes a pedir su ayuda, bueno el asunto es este:

tengo un codigo que es este
Código PHP:
<td><input type='button' onclick='remove(this)' value='Eliminar' /></td
el cual ejecuta perfectamente llamando la funcion remove() pero lo que yo quiero es que se llame a esa funcion directamente, es decir sin la necesidad de apretar este boton, ya lo he intentado asi:

Código PHP:
<script language='JavaScript' type='text/javascript'>
                
remove(???);
</script> 
poniendo este codigo en la parte que quiero que se ejecute pero no se como enviar el parametro, ya lo intente con 'this' pero no pasa nada :( , ojala alguien pudiera darme una idea, este codigo esta entre codigo php por si tuviera algo que ver, saludos
  #2 (permalink)  
Antiguo 14/10/2009, 15:04
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: ejecutar javascript si la necesidad de un boton

parece que la funcion remove esta desitinada a ser invocada por alguna accion del usuario. ahora bien, la socluion a tu problema es muy dificil plantearla porque no se sabe que hace la funcion remove con el parametro. quizas se pueda llamar directamente la funcion tan pronto el navegador lo lea pero tienes que tener en cuenta para que sea posible, el navegador tiene que primero cargar el contenido HTML porque sino te genera error. muestranos el codigo de la funcion remove.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 14/10/2009, 15:58
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: ejecutar javascript si la necesidad de un boton

Hola.

como dice zerokilled no sabemos que haces con ese parametro pero si es posible ejecutar las funciones de manera "automatica" y es precisamente como tu segundo codigo, solo tienes que tener en cuenta lo que dice zerokilled y para evitar eso simplemente tienes que colocar ese codigo al final de tu html, justo antes de la etiqueta de cierre del body
Código HTML:
...
...
...
<script language='JavaScript' type='text/javascript'>
                remove(???);
</script>
</body> 
suerte.
  #4 (permalink)  
Antiguo 14/10/2009, 17:04
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: ejecutar javascript si la necesidad de un boton

Hola.

javascript no depende de botones sino de eventos... los más corrientes son click, mouseXXXX (over, move, up...), etc. pero también valen la carga de la página (load)... y el más básico es la carga del mismo script. tan solo debes considerar como programar las acciones asociadas al evento.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 15/10/2009, 03:02
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: ejecutar javascript si la necesidad de un boton

bastara con que estés 'escuchando' por el evento en el que quieres que se active tu función. Como dice Caricatos, Javascript no depende de botones, sino de eventos.
__________________
twitter: @imbuzu
  #6 (permalink)  
Antiguo 15/10/2009, 06:24
 
Fecha de Ingreso: octubre-2009
Mensajes: 1
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: ejecutar javascript si la necesidad de un boton

Se puede emular el <body Onload=""> con algo más? para ejecutar alguna función?
  #7 (permalink)  
Antiguo 15/10/2009, 06:38
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: ejecutar javascript si la necesidad de un boton

Hola

Como tu pregunta es un poco ambigua la respuesta será corta sí. Se un poco mas especifico

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #8 (permalink)  
Antiguo 15/10/2009, 08:29
 
Fecha de Ingreso: agosto-2009
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: ejecutar javascript si la necesidad de un boton

gracias por la respuesta, bueno miren, lo que pasa es esto.

Lo que quiero es eliminar filas de una tablas, esa tabla la genero dinamicamente, el problema es que con la interaccion con el usuario, con el tiempo es que quiero que ya no aparescan algunas filas, eso se puede hacer con programacion en php, pero tendria que hacer algunas consultas a una BD y algunas comparaciones y quiero evitar todo eso por que seria mas codigo de lo que quiero, por lo que busque y encontre algo en javascript, pero la funcion que encontre es que se coloca un boton en alguna columna de cada fila y al presionarlo se borra la fila entera, eso si me sale, pero no quiero eliminarlos asi, quiero que desde un inicio ya no aparescan.

Ahora, lo que no se es como pasar ese parametro como les comente, el codigo es este:

Código PHP:
function remove(t){
    var 
td t.parentNode;
    var 
tr td.parentNode;
    var 
table tr.parentNode;
    
table.removeChild(tr);


Código PHP:
<table>
                <
TR>
                           <
TD >&nbsp;&nbsp;</TD
            <
TD ><input type='button' onclick='remove(this)' value='Eliminar'/>
            </
TD>
        </
TR>
</
table
La funcion remove, puede ser cualquier funcion, nada mas use ese nombre, pero puede ser cualquier otro, en fin.
Al momento de pasar ese parametro, es el del input, al llegar a la funcion va obteniendo los padres hasta llegar al de la tabla y elimina la fila por completo, eso si esta claro, pero ese es el detalle quiero hacer esto no se si sea posible:
Código PHP:
<table>
                <
TR>
                           <
TD >&nbsp;&nbsp;</TD
            <
TD ><script language='JavaScript' type='text/javascript'>
                                             
remove(this);
                                 
</script>
            </TD>
        </TR>
</table> 
y con ellos modificar la funcion asi:

Código PHP:
function remove(td){
    var 
tr td.parentNode;
    var 
table tr.parentNode;
    
table.removeChild(tr);

pero creo que no es posible por lo que me estan diciendo, ya que se debe cargar el script por un evento ya que con ello si es que no entiendo mal, el que proboca el evento que en este caso es el boton se puede pasar el this, pero en el segundo caso como nadie proboca el evento pues no se sabe que es this (corriganme si es que entiendo mal).

para no hacer mas largo esto, he intentado recorrer la tabla para encontrar las filas que quiero eliminar pero no he logrado nada estoy intentando usar esta funcion:

Código PHP:
function borrar() {
  
tab document.getElementsByTagName('table');
  
alert('Numero de filas de la tabla' tab.getElementsByTagName('tr').length);
//Me quede en esta parte por que, no aparece ni siquiera la alerta, supongo que algo tengo mal

  /*for(var i=0; i<tab.getElementsByTagName('tr').length; i++){
        
  } */ 

Espero alguna sugerencia, gracias a todos por su interes y su ayuda
Saludos
  #9 (permalink)  
Antiguo 15/10/2009, 12:25
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: ejecutar javascript si la necesidad de un boton

yo pienso que deberias eleminar esa fila desde PHP, es mas seguro en el sentido de que el usuario no percibira algun cambio. si estas decidido hacerlo en javascript, pues nada.
Cita:
<TD ><script language='JavaScript' type='text/javascript'>
remove(this);
</script>
</TD>
esa forma no te funciona por el contexto en que se ejecuta el codigo. cuando el navegador lee la etiqueta <script>, el codigo es interpretado en la jerarquia mas alta de los objetos, en este caso es el objeto window. sin embargo, en el caso de los eventos como atributos HTML, este se interpreta en el contexto del elemento en cuestion. o sea, en el primer caso, this hace referencia a window mientras que en el segundo caso hace referencia al elemento <input>.

la solucion es mas o menos como lo tienes en el ultimo codigo solo que te faltaria entender como realmente funciona al menos la funcion getElementsByTagName. la funcion devuelve una coleccion de elementos, un tipo de dato parecido a un array. las posiciones van a la par con el orden en que aparecen los elementos en el documento. en bold esta marcado lo que te falto ubicar.
Código:
alert('Numero de filas de la tabla' + tab[0].getElementsByTagName('tr').length);
una vez tengas el codigo necesario, este debe interpretarse luego que el navegador cree la parte necesaria del documento, o sea, en tu caso la tabla. lo puedes hacer ubicando el script luego de la etiqueta <table> o utilizando el evento onload. con onload, el script puede ser cargado en cualquier parte del documento.
Código:
self.onload = function(){
// aqui pones todo tu codigo;
// o bien la llamada a tu funcion;
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #10 (permalink)  
Antiguo 15/10/2009, 14:45
 
Fecha de Ingreso: agosto-2009
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: ejecutar javascript si la necesidad de un boton

muchas gracias por tu respuesta, probare lo que me dices y te comento, saludos
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 21:45.