如何从输入字段中获取多个值并添加到textarea?

时间:2016-11-03 11:25:50

标签: javascript jquery html asp.net-mvc

我想在文本框中添加单个值,单击添加后将在TextArea中显示。当我将在下一次执行此过程时,新值将显示在最后一个值之后。但是在下一次它覆盖我的最后一个值并显示最近的值。如何保存我的最后一个值并在新值之前按顺序显示它们。这是我的HTML代码,

    <div class="row">
<div class="col-md-6">
    <div class="input-group">
        @using (Html.BeginForm("Process", "Home", FormMethod.Post, new
        {
            enctype = "multipart/form-data"
        }))
        {
            <div class="input-group">
                <span class="input-group-addon" id="basic-addon1">Connect To:</span>                     
                @Html.TextBoxFor(model => model.ipAddress, new { @class = "form-control" })
            </div>    
                }
            </div>
</div>
<div class="col-md-6">
    <div class="panel panel-info">
        <div class="panel-heading">
            <h3 class="panel-title">Recent Devices</h3>
        </div>
        @Html.TextArea("Recent Devices", (string)@ViewBag.recentDevices, new { style = "max-width:100%; min-height:250px", @class = "form-control" })
    </div>
</div>

在我的控制器代码中,

    Session["recentDevices"] = con.ipAddress;
    Viewbag.recentDevices = Session["recentDevices"];

3 个答案:

答案 0 :(得分:1)

如果您想要一个简单的Javascript解决方案,请使用:

document.getElementById("MyTextarea").value += "Added text";

或者,根据您的编码方式,您也可以使用:

var text = document.getElementById("YourInput").value
document.getElementById("MyTextarea").value += text;

更新

我不确定这是否对您有所帮助,但此脚本会将值放在光标所在的位置。其他脚本将元素添加到textarea的末尾,因此它们应该适合您,但如果您想要更好的脚本,请使用此脚本。

typeInTextarea(document.getElementById('MyTextarea'), "Added Text");


      function typeInTextarea(el, newText) {
    var start = el.selectionStart
    var end = el.selectionEnd
    var text = el.value
    var before = text.substring(0, start)
    var after  = text.substring(end, text.length)
    el.value = (before + newText + after)
    el.selectionStart = el.selectionEnd = start + newText.length
    el.focus()
  }

答案 1 :(得分:0)

如果你使用ASP.NET MVC,我的建议是:

  • 创建自己的MVC组件
  • 使用jQuery做你想做的事情

为什么使用TextArea作为IP列表?如果用ListBox替换它,您可以直接从数据库或类似的东西管理所有内容。

答案 2 :(得分:0)

您可以随时滚动自己的设置。我会有一个带按钮的文本框,右边是一个列表框,其中包含用户输入的所有IP地址。您甚至可以在输入项目的右侧包含“X”,以便用户可以删除它。当您发回数据时,您所要做的就是在DIV元素上执行$ .each以获取数据并将其作为逗号分隔的字符串发布。