2013-07-22 55 views
1

我有以下的html:JavaScript函數不是從按鈕點擊射擊

<input type="text" id="theInput" /> 

<input id="clickMe" type="button" value="Search" onclick="testFunction(document.getElementById('theInput').value)" /><br> 

我試圖觸發此:

function testFunction(data) 
{ 
    alert(data); 
} 

我也嘗試另一種,使用:

document.getElementById("clickMe").onclick = testFunction(document.getElementById("theInput").value); 

不幸的是,這些方法似乎都沒有得到觸發功能。我確定我錯過了一些簡單的東西,請問有人能指出嗎?

+0

烏爾缺失值ATTR輸入 – Hushme

+0

第二個選項是錯誤的...的onclick =處理程序; ....處理程序必須是一個函數引用,而要設置testFunction的返回值在你的情況下將不確定。 使用onclick = function(){/ * testFunction執行代碼* /}; –

回答

2

我已經測試,發現你的代碼確定,你可以看到demo here。不過,我認爲它不適用於你的頁面,因爲你包含了你的javascript函數。您最好將所有腳本放在頁面的head標記中。

如果您使用某個框架,請確保您的函數和綁定在所有JavaScript加載時執行。

+0

它也適用於我,一旦我抽象它。在我嘗試使用的更大的代碼中,它不會觸發。真氣。但很高興知道這個邏輯是對的。 – Glenn

0

而不是分配onclick,它只允許您添加一個單擊處理程序到元素,您應該使用addEventListener,它允許您註冊多個偵聽器。請看下圖:

document.getElementById('clickMe').addEventListener('click', function() { 
    alert(document.getElementById('theInput').value); 
}); 

的jsfiddle演示here