Foros del Web » Programando para Internet » Javascript »

evento onclick (compatible con navegadores)

Estas en el tema de evento onclick (compatible con navegadores) en el foro de Javascript en Foros del Web. Hola tengo una duda.. en teoria el evento onclick="this.disabled=true" es aceptado por todos los navegadores no ? y si tienen desactivado javascript ? funciona igual ...
  #1 (permalink)  
Antiguo 03/06/2011, 11:04
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 11 meses
Puntos: 12
Pregunta evento onclick (compatible con navegadores)

Hola tengo una duda.. en teoria el evento onclick="this.disabled=true" es aceptado por todos los navegadores no ?

y si tienen desactivado javascript ? funciona igual ?

lo uso de 2 maneras...

<input type="submit" name="algo" onclick="this.disabled=true">

y asi

<a onclick="this.disabled = true">Algo</a> <--- De esta manera esta bien usado ??


pero sigue duplicandose contenido... esta permitiendo doble click y se insertan los datos varias veces...

Última edición por softmaster; 03/06/2011 a las 11:08 Razón: agregue info
  #2 (permalink)  
Antiguo 03/06/2011, 11:21
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, 6 meses
Puntos: 1485
Respuesta: evento onclick (compatible con navegadores)

buenas,
el primero funciona en cualquier navegador. el segundo, aunque no genera ningun error, en realidad no tiene efecto alguno. es decir, en el segundo caso, los enlaces no tienen la propiedad disabled. al intentar leer una propiedad que no existe, en lugar de generar error obtienes el valor undefined. pero en este caso le estas asignando un valor, lo cual significa que estas creando dicha propiedad. pero de nuevo, al navegador no tener reservado dicha propiedad, entonces no tiene ningun efecto.

sobre la pregunta inicial, si javascript esta inhabilitado, es muy imposible que igual funcione. de lo contrario, que proposito tendria dicha opcion dentro de las configuraciones. la inserccion de contenido duplicado puede suceder de varias formas luego de la inhabilitacion del boton. por ejemplo, el usuario puede volver al formulario y el boton ya estara disponible. javascript desactivado es otra forma. en fin, el lugar adecuado para mitigar ese problema es en el lado servidor. ¿como exactamente se hace? no lo se. supongo que debes comparar la diferencia de tiempo entre el ultimo contenido y el nuevo, mas comparar sus valores si son exactamente igual. creo que tambien te servira comparar la IP de ambos contenidos.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 03/06/2011, 11:48
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 11 meses
Puntos: 12
Respuesta: evento onclick (compatible con navegadores)

Cita:
Iniciado por zerokilled Ver Mensaje
comparar la diferencia de tiempo entre el ultimo contenido y el nuevo, mas comparar sus valores si son exactamente igual.
si mirando por ahi de otros casos esas serian las principales formas de hacerlo del lado del servidor...


disculpa pero no entendi al 100% esta parte... vos decis que si esta desactivado javascript podria funcionar igual esto en todos los navegadores?

<input type="submit" name="algo" onclick="this.disabled=true">
  #4 (permalink)  
Antiguo 03/06/2011, 11:53
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, 6 meses
Puntos: 1485
Respuesta: evento onclick (compatible con navegadores)

lo que quiero decir es que si javascript esta inhabilitado es como si el documento no tuviera script. por tanto, el resto continua su curso normal pero sin javascript. o sea, como si estuvieras escribiendo solamente html.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 03/06/2011, 12:01
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 11 meses
Puntos: 12
Respuesta: evento onclick (compatible con navegadores)

ok.. voy a reemplazar los enlaces por el input.. y ver de validar tambien el contenido duplicado en el lado del servidor...

la ultima... el mismo evento onclick="this.disabled=true" pero cambiando el type del input de submit por el button.. funciona tambien en todos los navegadores ? (por que en un form estoy utilizando ajax y solo acepta button o un enlace)

<input type="button" name="algo" onclick="this.disabled=true">

gracias zerokilled
  #6 (permalink)  
Antiguo 03/06/2011, 12:21
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, 6 meses
Puntos: 1485
Respuesta: evento onclick (compatible con navegadores)

intentalo! no pierdes nada con intentarlo. fijate que un <input>, independientemente del tipo, siempre tiene la misma interfaz.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 03/06/2011, 12:46
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 19 años
Puntos: 87
Respuesta: evento onclick (compatible con navegadores)

Creo que lo que usted quiere hacer es

Cita:
<a onclick="this.onclick = null">Algo</a>
  #8 (permalink)  
Antiguo 03/06/2011, 13:53
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 11 meses
Puntos: 12
Respuesta: evento onclick (compatible con navegadores)

Cita:
Iniciado por zerokilled Ver Mensaje
intentalo! no pierdes nada con intentarlo. fijate que un <input>, independientemente del tipo, siempre tiene la misma interfaz.
Sisi... Ya lo habia probado, y funciona... Yo me refería a si era compatible también con todos los navegadores.

Inkarc... Según dijo acá el amigo zerokilled no sirve...

Ahora de está manera nose:
<a onclick="this.onclick=null">algo</a>

Alguien sabe si funciona de está manera? Yo ahora no lo puedo probar... No estoy en la compu!


Utilizando
  #9 (permalink)  
Antiguo 03/06/2011, 13:59
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, 6 meses
Puntos: 1485
Respuesta: evento onclick (compatible con navegadores)

un enlace no se puede inhabilitar de la misma forma que un <input> porque la interfaz es distinta. en el caso de un enlace, podrias optar por: remover el enlace, o cambiar la url a uno vacio, o cancelar el evento para que la accion por defecto no tome lugar. para cambiar el enlace, simplemente asignas un string vacio a la propiedad href. para cancelar, creas el evento onclick al enlace y en este devuelves un boolean false. supongo que es eso lo que quieres hacer con el enlace.
Código:
<a href="path" onclick="this.onclick = function(){return false;};">link</a>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #10 (permalink)  
Antiguo 03/06/2011, 15:44
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 11 meses
Puntos: 12
Respuesta: evento onclick (compatible con navegadores)

Cita:
Iniciado por zerokilled Ver Mensaje
para cancelar, creas el evento onclick al enlace y en este devuelves un boolean false. supongo que es eso lo que quieres hacer con el enlace.
Código:
<a href="path" onclick="this.onclick = function(){return false;};">link</a>
claro... eso es lo que necesito hacer con el enlace..

comento el porque... estoy usando xajax(para insertar los datos)... y necesito enviar los datos del form mediante un enlace por lo que estoy procesando el formulario de esta manera:

<a onclick="xajax_procesar(xajax.getFormValues('nombr e_formulario'))">link</a>

ahora voy a probar lo que me decis del return false...

Última edición por softmaster; 03/06/2011 a las 15:46 Razón: agregue info
  #11 (permalink)  
Antiguo 03/06/2011, 16:54
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 11 meses
Puntos: 12
Respuesta: evento onclick (compatible con navegadores)

bueno.. estuve haciendo pruebas.. y funciona bien

Código HTML:
Ver original
  1. onclick="this.onclick = function(){return false;};"

parece que hace el sumit, no permite duplicar o doble click, funciona con el xajax y con un form comun... ademas parece que tambien funciona en todos los navegadores...
(IE <6,7,8>, FF, Chrome y safari)... vamos a ver como se comporta...

igualmente voy a validar tambien del lado del servidor por las dudas...

gracias a todos por la ayuda gente !!!

Etiquetas: evento, onclick, submit
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 16:14.