2016-11-03 66 views
1

我想在文本框中添加单个值,点击添加后,这将显示在TextArea中。当我在下一次执行此过程时,新值将在最后一个值后显示。但在下一次它会覆盖我的最后一个值并显示最近的值。如何保存最后的值并在新值之前顺序显示它们。这里是我的html代码,如何从输入字段获取多个值并添加到textarea?

<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"]; 

回答

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() 
    } 
+0

谢谢。第二个是完全符合我的标准 – Mahbub

0

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

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

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

0

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

相关问题