0

該腳本在用戶按下enter鍵後發出text-entered。我需要的是聽我點擊我的HTML頁面上的submit按鈕。這是腳本:如何收聽HTML頁面中的按下提交按鈕

// When the user hits return, send the "text-entered" 
// message to main.js. 
// The message payload is the contents of the edit box. 
var textArea = document.getElementById("txt-field"); 
textArea.addEventListener('keyup', function onkeyup(event) { 
    if (event.keyCode == 13) { 
    // Remove the newline. 
    text = textArea.value.replace(/(\r\n|\n|\r)/gm,""); 
    addon.port.emit("text-entered", text); 
    textArea.value = ''; 
    } 
}, false); 

的HTML是:

<html> 
<head> 
    <style type="text/css" media="all"> 
     textarea { 
     margin: 10px; 
     } 
     body { 

     background-color:#b3dbfa; 
     } 
    </style> 
    </head> 

    <body> 

    <form> 
     Enter URL: <br> 
     <input type="text" id="txt-field"> 
     <input type="submit" value="Add"> 
    </form> 
    <script src="get-text.js"></script> 
    </body> 
</html> 
+0

連接監聽器提交按鈕不textearea!目前還不清楚你的意思發送這個「當用戶點擊返回時,發送」文本輸入「 //消息到main.js」 – Gacci

回答

0

要收聽點擊在提交按鈕,簡單地說,在腳本中,向提交按鈕添加一個事件監聽器。但首先,在HTML添加id爲提交按鈕:

<input type="submit" value="Add" id="submit-btn"> 

在腳本:

addbtn=document.getElementById("submit-btn"); 
addbtn.addEventListener('click', function (event) { 
event.preventDefault(); 
// Get the text and remove the newline. 
var text = formTextArea.value.replace(/\s/,""); //remove space characters 
var level = document.getElementById("levels-list").value; 
//send the entered data to the addon to store them 
self.port.emit("text-entered", text); 
                 self.port.emit("selected-level", level); 
formTextArea.value = ''; //intialise the text area to empty after adding the item. 
} 
,false); 
0

看起來你正在使用附加組件,在SDK這是一種過時的技術。 Mozilla建議遷移到WebExtensions。

但是回答你的問題:使用jQuery你可以做類似

$('#myform').submit(function(e) { 
    e.preventDefault(); // don't submit 
    console.log('do something'); 
}); 

使用純JavaScript,你可以做類似

var form = document.getElementById('myform'); 
form.addEventListener('submit', function(e) { 
    e.preventDefault(); // don't submit 
    console.log('do something'); 
}) 
+0

提供一個jQuery解決方案,以不標記jQuery的問題往往沒有幫助。如果OP想要一個基於jQuery的解決方案,他們可以/應該用jQuery標記問題,或者在問題中提到它。實際上,[javascript標籤](https://stackoverflow.com/tags/javascript/info)明確指出:「除非還包括另一個框架/庫的標籤,否則預計會有純粹的JavaScript答案。」對於有關擴展的問題,這特別沒有幫助,而且通常是不好的做法。我注意到,與許多人不同,您還提供了香草JavaScript。 – Makyen