2011-03-28 19 views
30

Tengo un código JavaScript en una página HTML con un botón. Tengo una función llamada 'click()' que maneja el evento onClick del botón. El código para el botón es el siguiente:onclick evento no funciona en JavaScript

<input type="button" onClick="click()">button text</input> 

El problema es que cuando se hace clic en el botón, la función no se conoce. ¿Qué estoy haciendo mal aquí?
Gracias

+1

¿Aparece un error en la consola? Puedes publicar la función de hacer clic Funciona para mí ** [aquí] (http://jsfiddle.net/gTqnV/) ** – qwertymk

+1

Creo que necesitas un punto y coma después de esta función: ' botón de texto' – EmCo

+1

Probar ... 'onclick =" javascript: click(); "' –

Respuesta

77

Dos observaciones:

  1. debe escribir

    <input type="button" value="button text" /> 
    

    en lugar de

    <input type="button">button text</input> 
    
  2. Debe cambiar el nombre de la función. La función click() ya está definida en un botón (simula un clic), y obtiene una prioridad más alta que su método.

Tenga en cuenta que hay un par de sugerencias aquí que son simplemente erróneo, y no se debe gastar mucho tiempo en ellos:

  • No utilice onclick="javascript:myfunc()". Utilice únicamente el prefijo javascript: dentro del atributo href de un hipervínculo: <a href="javascript:myfunc()">.
  • No tiene que terminar con un punto y coma. onclick="foo()" y onclick="foo();" ambos funcionan bien.
  • Los atributos de evento en HTML no distinguen entre mayúsculas y minúsculas, por lo que onclick, onClick y ONCLICK funcionan. Es una práctica común escribir atributos en minúsculas: onclick. tenga en cuenta que javascript sí distingue entre mayúsculas y minúsculas, por lo que si escribe document.getElementById("...").onclick = ..., entonces debe ser todo en minúscula.
+0

esto es solo un script de muestra im escribiendo en mi Windows 95 con IE5 así que no estoy usando ningún material DOM porque no No sé qué tan bien es compatible. Aunque intentaré eso. Gracias –

+0

Sí, solo tuve que cambiar el nombre de mi función y funcionó. ¡Gracias de nuevo! Estaba realmente atascado –

+0

@ElianEbbing Gracias por tomarse el tiempo para explicarme algunas de estas cosas ... aunque son muy pequeñas, realmente me ayudaron a entender lo que estaba haciendo mal. – Louie

1

Intente arreglar las mayúsculas. onclick en lugar de onClick

Referencia: Mozilla Developer Docs

+0

Su enlace es un enlace XUL. Esto es lo que desea: https://developer.mozilla.org/en/DOM/element.onclick –

+1

Gracias, he corregido ese enlace. – Wylie

+2

todas las capitalizaciones funcionan, al navegador no le importa si está onClick, ONCLICK, onclick, Onclick o cualquier otra cosa. prefiero la notación de camello, así que uso ese –

2

probar este

<input type="button" onClick="return click();">button text</input> 
8

clic() es una palabra reservada y ya una función, cambiar el nombre de clic() para runclick() funciona bien

1

te sugiero que hagas: <input type="button" value="button text" onclick="click()"> Espero que esto ayude!

+1

Creo que el problema es su propiedad 'onclick', no la forma en que se muestra el valor del texto. –

0
<script> 
//$(document).ready(function() { 
function showcontent() { 
     document.getElementById("demo22").innerHTML = "Hello World"; 
} 
//});// end of ready function 
</script> 

Tuve el mismo problema en que las llamadas a la función onclick no funcionarían. Incluí la función dentro del usual "$ (document) .ready (function() {});" bloque utilizado para envolver guiones jquery. Comentando este bloque resolvió el problema.

0

Sí, debería cambiar el nombre de su función.Javascript tiene métodos reservados y onclick = >>>> haga clic en() < < < < es uno de ellos, así que simplemente cambie el nombre, agregue una 's' al final o algo así. texto fuerte `

-1

miembro del Grupo acaba de tener un problema donde el identificador del botón era el mismo que el nombre de la función, control de identidad de su botón, o comprobar otros componentes y asegúrese de que los nombres no están en conflicto.

0

Hoy esto también me ha pasado. El nombre de la función puede entrar en conflicto con las palabras clave. Mi caso es scrape(). Cambio el nombre de la función, todo funciona bien.

1

Compruebe que está llamando a la misma función o no.

<script>function greeting(){document.write("hi");</script> 

<input type="button" value="Click Here" onclick="greeting();"/> 
Cuestiones relacionadas