• jquery serialize()方法的扩展


    Jquery提供的序列化表单方法serialize方法确实方便,但是我在使用的时候发现了一个弊端:当我使用type:“post”进行ajax请求的时候,

    这个时候参数data:$("#myform").serialize()是这样获取的,请求之后发现还是一个get请求,参数被拼接在了地址后面,并不是实际意义的post请求,

    这里可以扩展Jquery库方法,如下代码:  

      

    jQuery.fn.extend({
        serialize: function() {
            return jQuery.param( this.serializeArray() );
        },
        serializeArray: function() {
            return this.map(function(){
                return this.elements ? jQuery.makeArray( this.elements ) : this;
            })
            .filter(function(){
                return this.name && !this.disabled &&
                    ( this.checked || rselectTextarea.test( this.nodeName ) ||
                        rinput.test( this.type ) );
            })
            .map(function( i, elem ){
                var val = jQuery( this ).val();
    
                return val == null ?
                    null :
                    jQuery.isArray( val ) ?
                        jQuery.map( val, function( val, i ){
                            return { name: elem.name, value: val.replace( rCRLF, "
    " ) };
                        }) :
                        { name: elem.name, value: val.replace( rCRLF, "
    " ) };
            }).get();
        },
        serializeObject:function(){  //扩展方法,为了直接生成对象-属性类型的参数集合,这样就实现了真正意义的post提交,参数隐藏
            var _arrayParams=this.serializeArray();
            var _objParams={};
            jQuery.each(_arrayParams,function(_fpi,_fpitem){
                _objParams[_fpitem.name]=_fpitem.value;
            });
            return _objParams;
        }
    });
  • 相关阅读:
    openssl rsa 加密
    SVN
    day04-drf认证、限流、权限、过滤、排序、分页、异常处理、自动接口文档生成、Xadmin后台管理
    day03-drf视图相关
    day02-序列化与反序列化
    day01-drf引入、序列化反序列化前序
    restFul接口设计规范
    Mysql优化之innodb_buffer_pool_size篇
    Mysql(CAST)和Oracle(to_char)应用
    Mongo和Mysql查看查询任务并终止
  • 原文地址:https://www.cnblogs.com/Brose/p/4816286.html
Copyright © 2020-2023  润新知