今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式
今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式
jquery中的serialize() 方法
该方法通过序列化表单值,创建 URL 编码文本字符串
序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中
这样当表单中要提交的参数比较多时,就可以使用该方法进行提交,否则将在ajax中得代码会很长,有可能在编写时出错,也不方便检查
以下是自己写的测试代码
publicclassItemInfo
{
publicstringPartNumber
{
get;
set;
}
publicstringProject
{
get;
set;
}
publicstringFamily
{
get;
set;
}
publicdecimalUnit_Price
{
get;
set;
}
publicint?Component_Qty
{
get;
set;
}
publicstringActive
{
get;
set;
}
publicstringHaveChild
{
get;
set;
}
publicDateTimeEffective_Date
{
get;
set;
}
publicDateTimeExpire_Date
{
get;
set;
}
publicstringMaintained_By
{
get;
set;
}
}
<formid="fm"method="post"novalidate>
<divclass="fitem">
<label>PartNumber:</label>
<inputname="PartNumber"class="easyui-validatebox"required="true">
</div>
<divclass="fitem">
<label>Project:</label>
<inputid="projectID"name="Project"class="easyui-combobox"/>
</div>
<divclass="fitem">
<label>Family:</label>
<inputname="Family"/>
</div>
<divclass="fitem">
<label>Unit_Price:</label>
<inputname="Unit_Price"data-options="min:0.0,precision:6"/>
</div>
<divclass="fitem">
<label>Component_Qty:</label>
<inputname="Component_Qty"data-options="min:0,precision:0"/>
</div>
<divclass="fitem">
<label>Active:</label>
<inputtype="checkbox"name="Active"/>
</div>
<divclass="fitem">
<label>HaveChild:</label>
<inputtype="checkbox"name="HaveChild"/>
</div>
<divclass="fitem">
<label>Effective_Date:</label>
<inputid="EFF_Date"name="Effective_Date"/>
</div>
<divclass="fitem">
<label>Expire_Date:</label>
<inputid="EX_Date"name="Expire_Date"/>
</div>
<divclass="fitem">
<label>Maintained_By:</label>
<inputname="Maintained_By"readonly/>
</div>
</form>
$.ajax({
type:"post",
url:'/ItemInfo/EditItem',//对应于controllerName/ActionName
timeout:3000,
data: $("#fm").serialize(),// { PartNumber: '22', Project: 'Project', Family: 'Chord' },
error:function(){ alert('Failed!');},
success:function(data, textStatus){
$('#Planner_ItemInfo').datagrid('loadData', data);
}
});
publicclassItemInfoController:Controller
{
publicboolEditItem(ItemInfo item)
{
returntrue;
}
}
实验成功,很方便。