如何正确获取textarea内容?
How to get textarea content properly?
我正在以浏览器扩展的形式进行文本到二进制的转换器。我有这个表格:
<textarea id="in"></textarea>
<textarea id="out" readonly></textarea>
<div id="buttons">
<button id="convert">Convert</button>
<button id="copy">Copy</button>
</div>
我想将转换后的文本从第一个文本区域插入到第二个文本区域中。这是脚本:
window.onload = function() {
document.getElementById("convert").addEventListener("click", click());
};
function click() {
// Getting the first textarea value
var inputText = document.getElementById("in").value;
var output = document.getElementById("out");
// Testing if it's a binary or a text
if (/^[0-1 ]*$/.test(inputText)) {
output.value = binToText(inputText);
}
else {
output.value = textToBin(inputText);
}
}
问题是如果我写入第一个文本区域,它的值不会改变,所以 value
属性 returns 为空。而第二个文本区域没有显示任何内容。
我什么都试过了,还是不行。我做错了什么?
您没有正确绑定事件处理程序。单击按钮时实际上没有任何反应。
您必须将函数本身传递给 addEventListener
,而不是它的 return 值:
document.getElementById("convert").addEventListener("click", click);
// ^^^^^
我正在以浏览器扩展的形式进行文本到二进制的转换器。我有这个表格:
<textarea id="in"></textarea>
<textarea id="out" readonly></textarea>
<div id="buttons">
<button id="convert">Convert</button>
<button id="copy">Copy</button>
</div>
我想将转换后的文本从第一个文本区域插入到第二个文本区域中。这是脚本:
window.onload = function() {
document.getElementById("convert").addEventListener("click", click());
};
function click() {
// Getting the first textarea value
var inputText = document.getElementById("in").value;
var output = document.getElementById("out");
// Testing if it's a binary or a text
if (/^[0-1 ]*$/.test(inputText)) {
output.value = binToText(inputText);
}
else {
output.value = textToBin(inputText);
}
}
问题是如果我写入第一个文本区域,它的值不会改变,所以 value
属性 returns 为空。而第二个文本区域没有显示任何内容。
我什么都试过了,还是不行。我做错了什么?
您没有正确绑定事件处理程序。单击按钮时实际上没有任何反应。
您必须将函数本身传递给 addEventListener
,而不是它的 return 值:
document.getElementById("convert").addEventListener("click", click);
// ^^^^^