023-将表单序列化为json对象

使用jQuery将表单序列化为json对象,其中serializeJson方法的名字任意,serializeArray()这个jQuery提供的方法。this指的就是谁调用了这个方法。

$.fn.serializeJson=function(){  
     var serializeObj={};  
     var array=this.serializeArray();
     $(array).each(function(){  
         if(serializeObj[this.name]){  
             if($.isArray(serializeObj[this.name])){  
                 serializeObj[this.name].push(this.value);  
             }else{  
                 serializeObj[this.name]=[serializeObj[this.name],this.value];  
             }  
         }else{  
             serializeObj[this.name]=this.value;   
         }  
     });  
     return serializeObj;  
}; 

使用演示:

this指的就是$("#searchForm")

<script type="text/javascript">
//指定一个工具方法,用于将指定的form表单中所有的输入项转为json数据{key:value,key:value,..}
    $.fn.serializeJson=function(){  
        var serializeObj={};  
        var array=this.serializeArray();
        $(array).each(function(){  
            if(serializeObj[this.name]){  
                if($.isArray(serializeObj[this.name])){  
                    serializeObj[this.name].push(this.value);  
                }else{  
                    serializeObj[this.name]=[serializeObj[this.name],this.value];  
                }  
            }else{  
                serializeObj[this.name]=this.value;   
            }  
        });  
        return serializeObj;  
    }; 

    $("#btn").click(function(){
        //将指定的form表单中所有的输入项转为json数据{key:value,key:value,..}
        var p = $("#searchForm").serializeJson();
        
        //调用数据表格的load方法,重新发送一次ajax请求,并且提交参数
        $("#grid").datagrid("load",p);
        
        //关闭查询窗口
        $("#searchWindow").window("close");
    });
</script>

页面提供form表单

        <!-- 这个表单其实不是用来提交的,是用来转json用的 -->
            <form id="searchForm">
                <table class="table-edit" width="80%" align="center">
                    <tr class="title">
                        <td colspan="2">查询条件</td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><input type="text" name="region.province"/></td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><input type="text" name="region.city"/></td>
                    </tr>
                    <tr>
                        <td>区(县)</td>
                        <td><input type="text" name="region.district"/></td>
                    </tr>
                    <tr>
                        <td>关键字</td>
                        <td><input type="text" name="addresskey"/></td>
                    </tr>
                    <tr>
                        <td colspan="2"><a id="btn" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'">查询</a> </td>
                    </tr>
                </table>
            </form>

 

转载于:https://www.cnblogs.com/jepson6669/p/8872663.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值