• 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>
  • 相关阅读:
    IIS配置和发布网站
    单点登录的理论原理(一)
    Tomcat乱码或异常
    浅谈Tomcat 、Apache、 Nginx的区别及优缺点
    KETTLE数据互交
    Centos7防火墙配置
    【linux】查看某个进程PID对应的文件句柄数量,查看某个进程当前使用的文件句柄数量
    this license XXXXXX has been cancelled
    Ubuntu16.04安装Redis
    redis的 rdb 和 aof 持久化的区别
  • 原文地址:https://www.cnblogs.com/jepson6669/p/8872663.html
Copyright © 2020-2023  润新知