什么?你还在用$().html()获取表单数据?

试想一下这个情形:
如果我想将一张表单的数据发送给服务端:


QQ截图20170327205250.png

新手可能通过DOM这种方式获取表单的数据:

var data = {
  title:$("#theTitle").val(),
  tech:getCheckbox(),
  type:$("#theType").val(),
  //各种input的值.....
}

function getCheckbox(){
  var result = []
  for(){
    //判断那堆复选框是不是被选中
  }
  return result
}

但是我可以告诉你,完全不需要这么做!
jQrery早已经帮我们把获取表单元素的方法封装好了:

jQuery.fn.extend({
    serialize: function() {
        return jQuery.param( this.serializeArray() );
    },
    serializeArray: function() {
        return this.map(function() {
            // Can add propHook for "elements" to filter or add form elements
            var elements = jQuery.prop( this, "elements" );
            return elements ? jQuery.makeArray( elements ) : this;
        })
        .filter(function() {
            var type = this.type;
            // Use .is(":disabled") so that fieldset[disabled] works
            return this.name && !jQuery( this ).is( ":disabled" ) &&
                rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
                ( this.checked || !rcheckableType.test( type ) );
        })
        .map(function( i, elem ) {
            var val = jQuery( this ).val();

            return val == null ?
                null :
                jQuery.isArray( val ) ?
                    jQuery.map( val, function( val ) {
                        return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
                    }) :
                    { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
        }).get();
    }
});

当我们用$()创建一个jQuery<b>表单</b>对象时,可以直接调用这个2个方法,serialize()是获取表单get的url:

serialize()

serializeArray()直接将get获取的url转换成对象:

serializeArray()
多观察、多思考,站在前人的肩膀上!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,422评论 0 2
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,222评论 0 1
  • 原文链接 http://blog.poetries.top/2016/10/20/review-jQuery 关注...
    前端进阶之旅阅读 16,720评论 18 503
  • 泡脚泡到浑身出汗 真是爽 就是洗澡又白洗了 再泡脚一定下班回来就开始泡。
    相相相柳阅读 154评论 0 0
  • 又到一年招聘季,今年跑了几个城市校园招聘的宣讲会和双选会,发现每年大学生的应聘方式都不见长进。我是真心为他们感到都...
    悟三分阅读 46,229评论 160 748