在我的情况下,我有
<input type="text"/>
和按钮,点击添加添加到页面的附加输入。
要添加输入,我使用此JavaScript:
var myBtn = document.getElementById('myBtn');
var qtyOfAdds = 0;
myBtn.addEventListener('click', function (event)
{
addField();
});
var form = document.getElementById('form1');
function addField()
{
var input = document.createElement('input');
input.id = qtyOfAdds;
input.name = qtyOfAdds;
input.type = "Text";
form.insertBefore(input, myBtn);
qtyOfAdds++;
document.getElementById('AddedFieldsCount').value = qtyOfAdds;
}
在服务器端,我读取发布数据,以获取所有现场数据输入
使用此C#代码:
var context = HttpContext.Current;
List<string> fieldsList = new List<string>();
string hiddenFieldData = context.Request["AddedFieldsCount"];
int addedFieldsCount = 0;
Int32.TryParse(hiddenFieldData, out addedFieldsCount);
for (int i = 0; i < addedFieldsCount; i++)
{
fieldsList.Add(context.Request[i.ToString()]);
}
所以,和.aspx页面上的html:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<link href="StyleSheet.css" rel="stylesheet" />
<script src="JavaScript.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<input type="text"/>
<button type="button" id="myBtn">ADD</button>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Submit" />
<br />
<input id="AddedFieldsCount" name="AddedFieldsCount" type="hidden" />
</form>
<script src="JavaScript.js"></script>
</body>
</html>
请告诉我,你能建议更好的方法吗?
答案 0 :(得分:1)
在我使用jQuery和Asp.Net MVC的情况下我会按如下方式处理它(请注意,这是未经测试的,因此可能存在一些错误),我也不确定文本框是什么将用于他们将支持的文本。
客户端
$(document).ready(function(){
$('#myBtn').click(function(){
var $this = $(this),
$form = $('#form1'),
$inputs = $('input.tb');
$newInput = $('<input/>', { type: 'text', name: 'tb' + $inputs.length, class: 'tb' }),
$inputs.last().after($newInput);
}
});
服务器端
HttpContext context = HttpContext.Current;
// Retrieve all keys
List<string> keys = from key in context.Request.Form.AllKeys
where key.StartsWith("tb")
select key;
在不知道您的确切要求和最终用途的情况下,总有很多方法可以达到您想要的效果,而您目前处理它的方式也很好,但也可以使用上述方法。