Событие onclick не работает в JavaScript
У меня есть код JavaScript на странице HTML с кнопкой. У меня есть функция "click()", которая обрабатывает событие onClick кнопки. Код для кнопки выглядит следующим образом:
<input type="button" onClick="click()">button text</input>
Проблема заключается в том, что при нажатии кнопки функция не вызывается. Что я здесь делаю неправильно?
Благодаря
Ответы
Ответ 1
Два наблюдения:
-
Вы должны написать
<input type="button" value="button text" />
вместо
<input type="button">button text</input>
-
Вы должны переименовать свою функцию. Функция click()
уже определена на кнопке (она имитирует щелчок) и получает более высокий приоритет, чем ваш метод.
Обратите внимание, что здесь есть несколько предложений, которые являются неправильными, и вы не должны тратить на них много времени:
- Не используйте
onclick="javascript:myfunc()"
. Используйте только префикс javascript:
внутри атрибута href
гиперссылки: <a href="javascript:myfunc()">
.
- Вам не нужно заканчивать точкой с запятой.
onclick="foo()"
и onclick="foo();"
оба работают нормально.
- Атрибуты событий в HTML не чувствительны к регистру, поэтому
onclick
, onclick
и onclick
работают все. Общепринятой практикой является запись атрибутов в нижнем регистре: onclick
. обратите внимание, что сам javascript чувствителен к регистру, поэтому, если вы пишете document.getElementById("...").onclick = ...
, то он должен быть строчным.
Ответ 2
click() - это зарезервированное слово и уже функция, измените имя из click() на runclick(), он отлично работает
Ответ 3
Попробуйте это
<input type="button" onClick="return click();">button text</input>
Ответ 4
Убедитесь, что вы вызываете ту же функцию или нет.
<script>function greeting(){document.write("hi");}</script>
<input type="button" value="Click Here" onclick="greeting();"/>
Ответ 5
Попробуйте зафиксировать капитализацию. onclick
вместо onclick
Ссылка: Документы разработчика Mozilla
Ответ 6
Я предлагаю вам: <input type="button" value="button text" onclick="click()">
Надеюсь, это поможет вам!
Ответ 7
<script>
//$(document).ready(function () {
function showcontent() {
document.getElementById("demo22").innerHTML = "Hello World";
}
//});// end of ready function
</script>
У меня была та же проблема, что и вызовы функций onclick. Я включил функцию внутри обычного "$ (document).ready(function() {});" блок, используемый для переноса сценариев jquery. Комментируя этот блок, проблема решена.
Ответ 8
Да, вы должны изменить имя своей функции. Javascript имеет зарезервированные методы и onclick = → → click() < < < является одним из них, поэтому просто переименуйте его, добавьте 's' в конец или что-то еще.
сильный текст
Ответ 9
Сегодня это тоже случилось со мной. Имя функции может быть связано с ключевыми словами. Мой случай scrape()
. Я меняю имя функции, все работает нормально.
Ответ 10
У члена группы просто была проблема, когда идентификатор кнопки был таким же, как имя функции, проверьте идентификатор кнопки или проверьте другие компоненты и убедитесь, что имена не конфликтуют.