zoukankan      html  css  js  c++  java
  • 今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式

    今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式 
    jquery中的serialize() 方法 
    该方法通过序列化表单值,创建 URL 编码文本字符串 
    序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中 
    这样当表单中要提交的参数比较多时,就可以使用该方法进行提交,否则将在ajax中得代码会很长,有可能在编写时出错,也不方便检查 
    以下是自己写的测试代码 

     ItemInfo类:

    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;
    }
    }

    Html代码:

    <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>

    Form表单中的Name属性是必须和ItemInfo类属性的字段名称一致才可以,这一点十分重要。 

    Jquery代码  收藏代码

    $.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);
    }
    });

    蓝色部分的data经Json数据处理后对应的字段全部是ItemInfo类中属性的,这样MVC会根据ItemInfo类的属性字符串(如Project字段)去Form表单中获取对应的取值,从而实现类数据的取值
     
    MVC后台代码:

      publicclassItemInfoController:Controller

        {

    publicboolEditItem(ItemInfo item)

    {
    returntrue;
    }

    }

    实验成功,很方便。
  • 相关阅读:
    从零入门 Serverless | Serverless Kubernetes 应用部署及扩缩容
    从单体迈向 Serverless 的避坑指南
    从零入门 Serverless | 教你使用 IDE/Maven 快速部署 Serverless 应用
    开发函数计算的正确姿势——OCR 服务
    从零入门 Serverless | 函数计算的开发与配置
    全部满分!阿里云函数计算通过可信云21项测试
    登录接口+三方登录 微博
    注册接口文档
    异步发送短信验证与 注册接口完善
    图片验证码接口
  • 原文地址:https://www.cnblogs.com/520cc/p/3571282.html
Copyright © 2011-2022 走看看