Reputation: 1702
I have some JavaScript code in an HTML page with a button. I have a function called click()
that handles the onClick
event of the button. The code for the button is as follows:
<input type="button" onClick="click()">button text</input>
The problem is that when the button is clicked, the function is not called. What am I doing wrong here?
Upvotes: 59
Views: 340165
Reputation: 673
One possible cause for an item not responding to an event is when the item is overlapped by another.
In that case, you may have to set a higher z-index
for the item you wish to click on.
Upvotes: 0
Reputation: 141
Check you are calling same function or not.
<script>function greeting(){document.write("hi");}</script>
<input type="button" value="Click Here" onclick="greeting();"/>
Upvotes: 3
Reputation: 43
Today this also happened to me. The function name maybe conflicts with keywords. My case is scrape()
. I change the function name, everything works fine.
Upvotes: 0
Reputation: 1
Yes you should change the name of your function. Javascript has reserved methods and onclick = >>>> click() <<<< is one of them so just rename it, add an 's' to the end of it or something. strong text`
Upvotes: 0
Reputation: 1
<script>
//$(document).ready(function () {
function showcontent() {
document.getElementById("demo22").innerHTML = "Hello World";
}
//});// end of ready function
</script>
I had the same problem where onclick function calls would not work. I had included the function inside the usual "$(document).ready(function(){});" block used to wrap jquery scripts. Commenting this block out solved the problem.
Upvotes: 0
Reputation: 62
I suggest you do:
<input type="button" value="button text" onclick="click()">
Hope this helps you!
Upvotes: 0
Reputation: 171
click() is a reserved word and already a function, change the name from click() to runclick() it works fine
Upvotes: 17
Reputation: 19027
Two observations:
You should write
<input type="button" value="button text" />
instead of
<input type="button">button text</input>
You should rename your function. The function click()
is already defined on a button (it simulates a click), and gets a higher priority then your method.
Note that there are a couple of suggestions here that are plain wrong, and you shouldn't spend to much time on them:
onclick="javascript:myfunc()"
. Only use the javascript:
prefix inside the href
attribute of a hyperlink: <a href="javascript:myfunc()">
.onclick="foo()"
and onclick="foo();"
both work just fine.onclick
, onClick
and ONCLICK
all work. It is common practice to write attributes in lowercase: onclick
. note that javascript itself is case sensitive, so if you write document.getElementById("...").onclick = ...
, then it must be all lowercase.Upvotes: 122
Reputation: 957
Try this
<input type="button" onClick="return click();">button text</input>
Upvotes: 3
Reputation: 1064
Try fixing the capitalization. onclick
instead of onClick
Reference: Mozilla Developer Docs
Upvotes: 0