在javascript中填充textarea中的数组

时间:2017-07-16 00:00:01

标签: javascript html

如何在<textarea>输入中填充文本中的数组?我的最终目标是获取名称列表,然后将其插入到数组中以执行某些操作。名称将由行分隔,如下所示:

 bob 
 tim 
 sally

然后添加到数组中。说实话,除了添加<textarea>并创建一个空白数组之外,我不知道从哪里开始。我正在阅读其他帖子,但他们使用的是jQuery或其他一些我还不知道的语言。我的理解是,我必须分一些内容如何?

4 个答案:

答案 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');

演示

https://codepen.io/nicholasabrams/pen/weZaOj

答案 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>