jquery中serialize()


前言

我们在表单ajax请求中,往往会传递一些参数,要是一个个获取感觉很麻烦,于是jQuery提供serialize()方法,让我们可以方便快捷的获取到表单中想要的值。

一、定义和用法

serialize() 方法通过序列化表单值,创建 URL 编码文本字符串。

您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素本身。

序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中。

$("form").serialize()

二、使用

.serialize() 方法创建以标准 URL 编码表示的文本字符串。它的操作对象是代表表单元素集合的 jQuery 对象。

    <form action="">
        <p>用户名:<input type="text" name="mames"></p>
        <p>密码:<input type="text" name="pass"></p>
        <p>
            性别: <select name="sex" id="">
                 <option></option>
                 <option></option>
             </select>
        </p>
        <p>描述:<textarea id="" cols="30" rows="10" name="ms"></textarea></p>
        <p>
            <input type="button" value="提交" id="btn">
        </p>
    </form>
  

serialize() 方法可以操作已选取个别表单元素的 jQuery 对象,比如 input,textarea 以及 select。不过,选择 form 标签本身进行序列化一般更容易些:

 <script src="./jquery-1.12.4.js"></script>
 $("#btn").click(function() {
            var pa = $("form").serialize()
            console.log(pa);

        })

在这里插入图片描述
通过上图可以看到输入中文乱码了,这是因为.serialize()自动调用了encodeURIComponent方法将数据编码了,解决办法就是调用decodeURIComponent(XXX,true);将数据解码。

pa = decodeURIComponent(pa, true);

在这里插入图片描述

三、注意事项

  • 如果表单元素没有name属性 就获取不到(必须要有name属性)
<p>用户名:<input type="text" name="mames"></p>
<p>密码:<input type="text"></p>

在这里插入图片描述

  • 必须要写在表单里面,即使有name也获取不到
 <form action="">
        <p>用户名:<input type="text" name="mames"></p>

        <p>
            <input type="button" value="提交" id="btn">
        </p>
    </form>
    <p>密码:<input type="text"></p>

在这里插入图片描述

  • 获取不到上传的文件,如果想要获取,需要使用FormDate对象。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值