美文网首页华东交通大学H5
什么?你还在用$().html()获取表单数据?

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

作者: Kagashino | 来源:发表于2017-03-27 21:12 被阅读35次

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


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()
多观察、多思考,站在前人的肩膀上!

相关文章

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

    试想一下这个情形:如果我想将一张表单的数据发送给服务端: 新手可能通过DOM这种方式获取表单的数据: 但是我可以告...

  • html5 表单元素

    1 表单元素作用:表示用于获取影虎输入的数据(1)form 设置html表单 提交 属性action:表示表单...

  • 如何使用HTML表单

    什么是HTML表单 HTML表单用于收集用户输入,想服务器传输数据,使用 元素来定义一个HTML表单。表单可以包含...

  • flask DatePicker 用法简介

    1. 引入DateField 2. 添加表单 提交 表单时获取数据 4. 渲染html 5. 效果 备注: 1...

  • 技术部作业指导

    目录: HTML表单--提交数据 数据库操作--查询 微信接口 其他 HTML表单 表单代码:

  • 收集表单数据

    收集表单数据