2011-03-28 425 views
30

我在一個HTML頁面中有一個按鈕的JavaScript代碼。我有一個名爲'click()'的函數來處理按鈕的onClick事件。該按鈕的代碼如下:onclick事件不能在JavaScript中工作

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

問題是,單擊按鈕時,函數不會被調用。我在這裏做錯了什麼?
謝謝

+1

您是否在控制檯中發生錯誤?你可以發佈點擊功能嗎?它適用於我** [這裏](http://jsfiddle.net/gTqnV/)** – qwertymk 2011-03-28 02:00:25

+1

我想你需要一個分號後像這樣的功能:'按鈕文字' – EmCo 2011-03-28 02:03:54

+1

嘗試......'onclick =」javascript:click();「' – 2011-03-28 02:05:39

回答

77

兩個意見:

  1. 你應該寫

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

    代替

    <input type="button">button text</input> 
    
  2. 您應該重命名功能。功能click()已經定義在一個按鈕上(它模擬點擊),並獲得更高的優先級,然後你的方法。

注意,有一對夫婦的建議,這裏是完全錯誤的,你不應該花太多的時間在他們身上:

  • 不要使用onclick="javascript:myfunc()"。僅在超鏈接的href屬性內使用javascript:前綴:<a href="javascript:myfunc()">
  • 您不必以分號結尾。 onclick="foo()"onclick="foo();"都工作得很好。
  • HTML中的事件屬性不區分大小寫,因此onclickonClickONCLICK都可以使用。通常的做法是用小寫字母編寫屬性:onclick請注意,JavaScript本身區分大小寫,所以如果你寫document.getElementById("...").onclick = ...,那麼它必須全部小寫
+0

這只是一個示例腳本即時消息寫在我的Windows 95與IE5,所以我沒有使用任何DOM的東西,因爲我不不知道它得到了多大的支持。但我會盡力。謝謝 – 2011-03-29 19:17:36

+0

是的,我只是改變了我的功能的名稱,它的工作。再次感謝!我真的被卡住了 – 2011-03-31 01:15:59

+0

@ElianEbbing謝謝你抽出時間來解釋一些這些事情......儘管他們很小,他們真的幫助我明白我做錯了什麼。 – Louie 2014-08-28 00:38:23

1

嘗試修復大小寫。的onclick代替onClick

參考:Mozilla Developer Docs

+0

您的鏈接是XUL鏈接。這是你想要的:https://developer.mozilla.org/en/DOM/element.onclick – 2011-03-28 02:01:43

+1

謝謝你,我修復了這個鏈接。 – Wylie 2011-03-28 02:03:14

+2

所有的大寫都可以工作,瀏覽器不應該在意onClick,ONCLICK,onclick,Onclick或其他任何東西。我更喜歡駱駝符號,所以我使用 – 2011-03-31 01:17:17

2

試試這個

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

點擊()是保留字,已經是一個函數,這個名字從點擊()改爲runclick(),它工作正常

1

我建議你做: <input type="button" value="button text" onclick="click()"> 希望這可以幫助你!

+1

我認爲問題是他的'onclick'屬性,而不是文本值的顯示方式。 – 2015-07-30 16:05:58

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

我有同樣的問題,onclick函數調用將無法正常工作。我已經將函數包含在通常的「$(document).ready(function(){});」用於包裝jquery腳本的塊。評論這個塊解決了這個問題。

0

是的,你應該改變你的功能的名稱。Javascript已經保留了方法和onclick = >>>>點擊()< < < <是其中之一,所以只需重新命名它,在它的末尾添加's'或其他東西。 強大的文本`

-1

組成員只是有一個問題,即按鈕的ID是一樣的功能名稱,請檢查您的按鈕的ID,或檢查其他組件,並確保這些名稱不衝突。

0

今天這也發生在我身上。函數名可能與關鍵字衝突。我的情況是scrape()。我更改函數名稱,一切正常。

1

檢查您是否調用了相同的函數。

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

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