2013-05-30 30 views
0

我是Chrome擴展/ java腳本開發的新手,我被困在以下練習中。通過彈出按鈕獲取文本框的值

我創建了一個帶有按鈕和文本框的彈出窗口。我想在按下提交按鈕時將文本框的值傳遞給一個警報。我有以下代碼至今:

popup.html

<div id="popup"></div> 
<form name="q"> 
    <input name="query" id="userQuery" type="text" /> 
    <button id="button1">Submit</button> 
    <!-- <input type="button" name="button" value="query" /> --> 
</form> 

popup.js

document.addEventListener('DOMContentLoaded', function() { 
    console.log(document.getElementById('userQuery')); 
    document.getElementById('button1').addEventListener('click', myAlert(document.getElementById('userQuery'))); 
}); 

function myAlert(query){ 
    alert(query.value) 
} 

不過,我得到 「空」 爲query.value因此警報空了。 我還注意到,當彈出窗口中點擊擴展名時,我也收到一個提醒,我不明白爲什麼,我用'click'和'onclick',但我得到同樣的問題。

任何提示或幫助將不勝感激!

回答

0

一種方式做到這一點:

document.getElementById('button1').addEventListener('click', function() { myAlert(document.getElementById('userQuery')); }); 

在代碼中,表達myAlert(document.getElementById('userQuery'))評估時addEventListener被調用。這就是爲什麼當頁面加載時看到空白的警報。相反,您需要傳遞一個函數,該函數將在發生點擊事件時執行。

+0

謝謝!它解決了我的兩個問題。解決它通過發送: document.getElementById('button1')。addEventListener('click',function(){myAlert(document.getElementById('userQuery')。value);}); – superman251

0

試試這個$("#userQuery").val() OR document.getElementById("userQuery").value

,而不是document.getElementById('userQuery')

+0

嗨Ramesh,這兩個替代品都給我提供了一個空白以及 – superman251

相關問題