我正在尝试创建一个动态文本框,我可以使用它来允许输入多个值。我为此目的使用了javascript,认为这可以让我获取文本值并将其放入列表中,然后再将其传递给我的Web应用程序。但是,代码document.getElementById('<%=sidemgr.ClientID%>').value
仅从其创建中获取sidemgr.txt的初始值。
如何获取此文本框的更新值?我是否必须使用javascript文本框?
这是我的javascript
<script type="text/javascript">
$(document).ready(function () {
$("#btnAdd").click(function () {
var value = document.getElementById('<%=sidemgr.ClientID%>').value;
var field = $("#field").val();
var input = "<div id='listDiv' />";
var newRow = "<tr><td>" + field + "</td><td>" + value + "</td></tr>";
$('#controls').append(newRow);
});
});
</script>
和html
<div>
<asp:TextBox ID="sidemgr" runat="server"></asp:TextBox>
<br />
<input id="btnAdd" type="url" value="Add" />
<asp:Button ID="btnProcess" runat="server" Text="Process" OnClick="Process" />
<table id="controls" cellpadding="10" cellspacing="10">
</table>
</div>
C#代码
protected void Process(object sender, EventArgs e)
{
var parameters = Request.Form["parameters"];
if (parameters != null && parameters.Count() > 0)
{
parameters.Split(',').ToList().
ForEach(p =>
{
Response.Write(p + "<br />");
});
}
}
请注意,其中一些来自我之前发现的解决方案。
答案 0 :(得分:1)
创建一个隐藏字段来保存服务器中所需的值,你做服务器的方式不是Request.Form的值[&#34;参数&#34;]
$(document).ready(function () {
$("#btnAdd").click(function () {
var value = document.getElementById('<%=sidemgr.ClientID%>').value;
var field = $("#field").val();
var input = "<div id='listDiv' />";
var newRow = "<tr><td>" + field + "</td><td>" + value + "</td></tr>";
$("#parameters").val($("#parameters").val()+value+",")
$('#controls').append(newRow);
});
});
&#13;
<div>
<asp:TextBox ID="sidemgr" runat="server"></asp:TextBox>
<input type="hidden" id="parameters" name="parameters"/>
<br />
<input id="btnAdd" type="url" value="Add" />
<asp:Button ID="btnProcess" runat="server" Text="Process" OnClick="Process" />
<table id="controls" cellpadding="10" cellspacing="10">
</table>
</div>
&#13;
使用此隐藏字段,服务器将收到Request.Form [&#34;参数&#34;],其中包含&#34; value1,value2,&#34;
或者您可以使用多个名为&#34;参数[]&#34;的隐藏字段,插入表格中,并使用Request.Form [&#34;参数&#34;]作为列表