Jquery 如何像这样序列化表单?
我知道有很多这样的问题,但我找不到解决办法对不起,菜鸟。。。 我有一个可以通过javascript添加和删除行的表单Jquery 如何像这样序列化表单?,jquery,asp.net-mvc,c#-3.0,Jquery,Asp.net Mvc,C# 3.0,我知道有很多这样的问题,但我找不到解决办法对不起,菜鸟。。。 我有一个可以通过javascript添加和删除行的表单 <form id="form1"> <div class="row"> <input name="suppliername" /> <input name="supplierproduct" /> <div> <div class="row">
<form id="form1">
<div class="row">
<input name="suppliername" />
<input name="supplierproduct" />
<div>
<div class="row">
<input name="suppliername" />
<input name="supplierproduct" />
<div>
<div class="row">
<input name="suppliername" />
<input name="supplierproduct" />
<div>
</form>
我将通过jquery ajax post发布这些数据?
服务器将使用asp mvc
控制器
public void createsup(List<Supplier> model)
{
// something
}
帮助谢谢…您可以使用map()
创建一个对象数组,其中包含行中输入
字段中的那些属性和值。试试这个:
var data = $('.row').map(function() {
var obj = {};
$(this).find('input').each(function() {
obj[this.name] = this.value;
});
return obj;
}).get();
为什么要创建手动html。在视图中使用@model List
,并在for
循环中使用html帮助程序生成html,以便它们具有正确的名称属性。您所需要的就是数据:$('form')。serialize()
使用ajax发布它。
public class Supplier
{
public string suppliername {get; set;}
public string supplierproduct{get; set;}
}
var data = $('.row').map(function() {
var obj = {};
$(this).find('input').each(function() {
obj[this.name] = this.value;
});
return obj;
}).get();