событие onclick не работает в JavaScript - PullRequest
45 голосов
/ 28 марта 2011

У меня есть код JavaScript на странице HTML с кнопкой. У меня есть функция под названием «click ()», которая обрабатывает событие onClick кнопки. Код для кнопки выглядит следующим образом:

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

Проблема в том, что при нажатии кнопки функция не вызывается. Что я тут не так делаю?
Спасибо

Ответы [ 9 ]

96 голосов
/ 28 марта 2011

Два наблюдения:

  1. Вы должны написать

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

    вместо

    <input type="button">button text</input>
    
  2. Вы должны переименовать вашу функцию. Функция click() уже определена для кнопки (она имитирует щелчок) и получает более высокий приоритет, чем ваш метод.

Обратите внимание, что здесь есть несколько предложений, которые совершенно неверны, и вам не следует тратить на них много времени:

  • Не использовать onclick="javascript:myfunc()". Используйте префикс javascript: только внутри атрибута href гиперссылки: <a href="javascript:myfunc()">.
  • Вам не нужно заканчивать точкой с запятой. onclick="foo()" и onclick="foo();" отлично работают.
  • Атрибуты событий в HTML не чувствительны к регистру, поэтому onclick, onClick и ONCLICK все работают. Обычной практикой является запись атрибутов в нижнем регистре: onclick. обратите внимание, что сам javascript чувствителен к регистру, поэтому если вы напишите document.getElementById("...").onclick = ..., тогда должно быть строчными .
13 голосов
/ 22 июля 2011

click () - зарезервированное слово и уже является функцией, измените имя с click () на runclick (), оно отлично работает

4 голосов
/ 28 марта 2011

Попробуйте это

<input type="button" onClick="return click();">button text</input>  
3 голосов
/ 14 декабря 2017

Убедитесь, что вы вызываете ту же функцию или нет.

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

<input type="button" value="Click Here" onclick="greeting();"/>
0 голосов
/ 16 мая 2017

Сегодня это также случилось со мной.Имя функции может конфликтовать с ключевыми словами.Мой случай scrape().Я меняю имя функции, все отлично работает.

0 голосов
/ 02 августа 2016

Да, вы должны изменить название вашей функции. Javascript имеет зарезервированные методы, и onclick = >>>> click () сильный текст `

0 голосов
/ 16 июля 2016
<script>
//$(document).ready(function () {
function showcontent() {
        document.getElementById("demo22").innerHTML = "Hello World";
}
//});// end of ready function
</script>

У меня была такая же проблема, когда вызовы функции onclick не работали. Я включил функцию в обычный "$ (document) .ready (function () {});" блок, используемый для переноса скриптов jquery. Комментирование этого блока решило проблему.

0 голосов
/ 09 декабря 2012

Я предлагаю вам сделать: <input type="button" value="button text" onclick="click()"> Надеюсь, это поможет вам!

0 голосов
/ 28 марта 2011

Попробуйте исправить заглавные буквы.onclick вместо onClick

Ссылка: Документы разработчика Mozilla

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...