如何在<textarea>
输入中填充文本中的数组?我的最终目标是获取名称列表,然后将其插入到数组中以执行某些操作。名称将由行分隔,如下所示:
bob
tim
sally
然后添加到数组中。说实话,除了添加<textarea>
并创建一个空白数组之外,我不知道从哪里开始。我正在阅读其他帖子,但他们使用的是jQuery或其他一些我还不知道的语言。我的理解是,我必须分一些内容如何?
答案 0 :(得分:1)
非常简单:
var textarea = document.querySelector('textarea#names');
var textareaValue = textarea.value; // 'bob\ntim\nsally';
var arr = textareValue.split('\n');
split()接受字符串并将其切割成每个给定字符(或字符串)的数组。
\n
是换行符。
编辑:回答下面评论中提出的问题:
var names = [];
var textarea = document.querySelector('textarea#names');
function saveNames() {
names = textarea.value.split('\n');
}
textarea.addEventListener('blur', saveNames, false);
// or this:
// textarea.addEventListener('keyup', saveNames, false);
您使用events。您可以使用blur事件甚至keyup事件。基本上你会听(事件)发生的事情(例如textarea松散焦点或用户按下键盘按钮),然后做一些事情(读取textarea值并将名称保存到数组中)。
这当然是纯粹的js,但是如果你想使用jquery,那么你需要转到jquery引用并查看how to use events with jquery。
答案 1 :(得分:1)
我们假设您有一个textarea,并在输入每个名称后返回。这应该让你开始:
<textarea id="textToArray" style="width:300px; height:120px;"></textarea>
<button onclick="toArray()">To Array</button>
<div id="arrayOutput"><div/>
<script type="text/javascript">
function toArray( ) {
var textAreaElement = document.getElementById('textToArray');
var namesArray = textAreaElement.value.trim().split('\n');
console.log( namesArray );
document.getElementById('arrayOutput').innerText = JSON.stringify(namesArray);
}
</script>
答案 2 :(得分:0)
如果你的话是 你走了:
<textarea name="example" id="example" cols="30" rows="10">
bob
tim
sally
</textarea>
const textareaContent = document.getElementById('example').value.split('\n');
演示的
答案 3 :(得分:0)
试试这个:
<html>
<body>
<textarea id="textArea"></textarea>
<button onclick="textToArray()">to array</button>
<!--show array result-->
<p id="result"></p>
</body>
</html>
<script>
function textToArray() {
//assign value of textarea to mytext
var myText = document.getElementById("textArea").value;
//split mytext by nextline = "\n"
var myArray = myText.split("\n");
//to check the result
var result = '';
for(i=0;i<myArray.length;i++)
{
result += myArray[i]+"<br>";
}
document.getElementById("result").innerHTML = result;
}
</script>