C# 用c获取jquery生成的html的值#
我试图获取使用JQuery生成的textbox的值。文本框一次添加到第3页。每3个框代表一个项目 添加创建另外3个大小、价格和颜色框。 您似乎可以从C# 用c获取jquery生成的html的值#,c#,jquery,html,asp.net,forms,C#,Jquery,Html,Asp.net,Forms,我试图获取使用JQuery生成的textbox的值。文本框一次添加到第3页。每3个框代表一个项目 添加创建另外3个大小、价格和颜色框。 您似乎可以从Request.form中获取所有信息,它以某种方式为您提供了NameValueCollection,如果我错了,请纠正我,这些值应该存储在该集合中。这是我似乎无法理解的。基于该集合,如何查找文本框的名称及其值 创建框的JQuery: <script type="text/javascript"> counter =
Request.form
中获取所有信息,它以某种方式为您提供了NameValueCollection
,如果我错了,请纠正我,这些值应该存储在该集合中。这是我似乎无法理解的。基于该集合,如何查找文本框的名称及其值
创建框的JQuery:
<script type="text/javascript">
counter = 1;
function foo() {
$(".form").append('<div id=item' + counter + '><hr/><div class="innerItem"><p>size</p><input type="text" name="item" /><p>color</p><input type="text" name="item" /><p>price</p><input type="text" name="item" /></div>');
del = $("#item" + counter);
del.append('<input type="button" class="remove" value="remove" id="' + counter + '"/>');
counter++;
}
$("body").on('click', '.remove', function () {
var id = $(this).attr("id");
$("#item" + id).remove();
});
</script>
计数器=1;
函数foo(){
$(“.form”).append(“
大小颜色价格”);
del=$(“#项目”+计数器);
删除。附加(“”);
计数器++;
}
$(“body”)。在('click','remove',函数(){
var id=$(this.attr(“id”);
$(“#项”+id).remove();
});
这是我在代码背后的东西。主要使用这段代码来了解它是如何工作的
protected void Page_Load(object sender, EventArgs e)
{
if(IsPostBack)
{
NameValueCollection data;
//Load Form variables into NameValueCollection variable.
data = Request.Form;
// Get names of all forms into a string array.
String[] arr1 = data.AllKeys;
for (int loop1 = 0; loop1 < arr1.Length; loop1++)
{
Response.Write("Form: " + arr1[loop1] + "<br>");
}
}
}
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(iPostBack)
{
收集数据;
//将表单变量加载到NameValueCollection变量中。
data=Request.Form;
//将所有表单的名称放入字符串数组。
字符串[]arr1=data.AllKeys;
for(int loop1=0;loop1”;
}
}
}
这是codebehind生成的:
形式:\事件目标
形式:\事件参数
形式:uu视图状态
表格:项目
我想我想要的数据在项中。我只是不明白这是否正确,或者如何访问项中的内容
这也可能是100%错误的。我在网上读了一些信息,可能没有正确理解 你想要什么
var postedValue = Request.Form["item"];
所有3个文本框均命名为“项”
您希望将文本框的名称更改为
function foo() {
$(".form").append('<div id=item' + counter + '><hr/><div class="innerItem"><p>size</p><input type="text" name="item-size" /><p>color</p><input type="text" name="item-color" /><p>price</p><input type="text" name="item-price" /></div>');
del = $("#item" + counter);
del.append('<input type="button" class="remove" value="remove" id="' + counter + '"/>');
counter++;
}
有关请求的更多信息,请参阅。表单
首先,您应该为每个文本框指定一个唯一的名称,以便在发布时区分它们
$(“.form”).append(“
大小颜色价格”)代码>
然后可以使用GetValues方法在代码隐藏中获取这些数组
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
string[] Sizes = Request.Form.GetValues("item-size");
string[] Colors = Request.Form.GetValues("item-color");
string[] Prices = Request.Form.GetValues("item-price");
}
}
或者您可以直接将这些数组压缩到一个“项”数组中
每个项目都有属性大小、颜色和价格。请求。表单按名称查找表单元素(如果有帮助的话)?我计划将这些项目作为批量产品添加到产品数据库中。将它们分组,使1个尺寸、颜色和价格组成1个项目。那么,给它们装上拉链是最好的选择吗?@jackncoke这是一个相当随意的选择;如果您需要在代码中进一步处理数据,那么它将有助于提高可读性。@sircapsalot想详细说明吗?你指的是哪些惯例“
应该是”
我知道我很迂腐,但你应该纠正OP偏离常规:)@sircapsalot你是对的,我复制OP的字符串时甚至没有注意到。。我会编辑!
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
string[] Sizes = Request.Form.GetValues("item-size");
string[] Colors = Request.Form.GetValues("item-color");
string[] Prices = Request.Form.GetValues("item-price");
}
}
var items = Request.Form.GetValues("item-size")
.Zip(Request.Form.GetValues("item-color"), (s, c) => new { s, c })
.Zip(Request.Form.GetValues("item-price"), (a, p) => new { Size = a.s, Color = a.c, Price = p });