58

我在带有按钮的 HTML 页面中有一些 JavaScript 代码。我有一个click()处理onClick按钮事件的函数。按钮的代码如下:

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

问题是当按钮被点击时,函数没有被调用。我在这里做错了什么?

4

10 回答 10

121

两个观察:

  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,onClickONCLICK所有工作。通常的做法是用小写写属性:onclick. 注意javascript本身是区分大小写的,所以如果你写document.getElementById("...").onclick = ...,那么它必须全部小写
于 2011-03-28T03:25:52.447 回答
17

click() 是一个保留字并且已经是一个函数,将名称从 click() 更改为 runclick() 它可以正常工作

于 2011-07-22T12:52:54.927 回答
3

尝试这个

<input type="button" onClick="return click();">button text</input>  
于 2011-03-28T02:07:08.097 回答
3

检查您是否正在调用相同的函数。

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

<input type="button" value="Click Here" onclick="greeting();"/>
于 2017-12-14T08:12:46.007 回答
0

我建议你这样做: <input type="button" value="button text" onclick="click()"> 希望这对你有帮助!

于 2012-12-09T11:40:00.333 回答
0

尝试修复大小写。onclick代替onClick

参考:Mozilla 开发者文档

于 2011-03-28T01:59:17.597 回答
0
<script>
//$(document).ready(function () {
function showcontent() {
        document.getElementById("demo22").innerHTML = "Hello World";
}
//});// end of ready function
</script>

我遇到了同样的问题,onclick 函数调用不起作用。我已将函数包含在通常的“$(document).ready(function(){});”中 用于包装 jquery 脚本的块。评论这个块解决了这个问题。

于 2016-07-16T15:43:40.137 回答
0

今天这也发生在我身上。函数名可能与关键字冲突。我的情况是scrape()。我更改了函数名称,一切正常。

于 2017-05-16T03:31:36.613 回答
0

是的,您应该更改函数的名称。Javascript 保留了方法,onclick = >>>> click() <<<< 就是其中之一,所以只需重命名它,在它的末尾添加一个“s”或其他东西。 强文本`

于 2016-08-02T03:57:20.667 回答
0

一个项目不响应事件的一个可能原因是该项目与另一个项目重叠。在这种情况下,您可能需要为z-index要单击的项目设置更高的值。

于 2021-01-10T17:03:28.503 回答