• 今天在研究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;
    }

    }

    实验成功,很方便。
  • 相关阅读:
    微信退款和支付宝退款接口调用(java版)
    SpringBoot实现JWT认证
    param-validate的使用
    SpringBoot统一参数校验开源项目:param-validate
    AOP+自定义注解实现全局参数校验
    Java自定义注解的实现
    Java初级面试题--持续更新
    React-native run-android fail on :app:processDebugResources解决办法
    【原创】Ionic单页应用跳转外链,构造路由返回的解决办法及代码
    angular 负数遇到货币过滤器,负号会变成括号的解决办法
  • 原文地址:https://www.cnblogs.com/520cc/p/3571282.html
Copyright © 2020-2023  润新知