Ajax表单的序列化


Ajax表单的序列化

一、.serialize( )

概述

  • 将用作提交的表单元素的值编译成字符串。
  • 不接受参数

注意: 只有 "successful controls"可以被序列化成字符串。其中,提交按钮的值不会被序列化。另外,如果想要一个表单元素的值被序列化成字符串,这个元素必须含有 name 属性。此外,复选框(checkbox)和单选按钮(radio)(input 类型为 “radio” 或 “checkbox”)的值只有在被选中时才会被序列化。另外,文件选择元素的数据也不会被序列化。


二、.serializeArray()

概述

序列化表格元素 (类似 ‘.serialize()’ 方法) 返回 JSON 数据结构数据。

注意: 此方法返回的是JSON对象而非JSON字符串。需要使用插件或者第三方库进行字符串化操作。

返回的JSON对象是由一个对象数组组成的,其中每个对象包含一个或两个名值对——name参数和value参数(如果value不为空的话)。举例来说:

 [ 
     {name: 'firstname', value: 'Hello'}, 
     {name: 'lastname', value: 'World'},
     {name: 'alias'}, // this one was empty
  ]

示例:弹出表单数据

注意:表单是用bootstrap写的

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>表单的序列化</title>
    <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <script src="http://www.jq22.com/jquery/jquery-1.7.1.js"></script>
</head>
<style> 
*{
    margin: 0;
    padding: 0;
}
.container{
    padding: 20px;
    width: 350px;
    height: 800px;
    border:1px solid palevioletred;
}

</style>
<body>
    <div class="container">
        <form >
            <div class="form-group">
                <label for="exampleInputEmail1">姓名</label>
                <input type="text" class="form-control" id="exampleInputEmail1" placeholder="name" name="name">
            </div>
            <div class="form-group">
                <label for="exampleInputPassword1">年龄</label>
                <input type="text" class="form-control" id="exampleInputPassword1" placeholder="age" name="age">
            </div>
           <div class="form-group">
             <label>性别:</label>
            <br/><label class="radio-inline">
                <input type="radio" name="inlineRadioOptions" checked="checked" id="inlineRadio1" value="option1"> 女
                </label>
                <label class="radio-inline">
                <input type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2"> 男
                </label>
           </div>
           <div class="form-group">
             <label>爱好:</label>
             <br/><label class="checkbox-inline">
                         <input type="checkbox" id="inlineCheckbox1" checked="checked" value="option1" name="check">  打游戏
                    </label>
                    <label class="checkbox-inline">
                             <input type="checkbox" id="inlineCheckbox2" value="option2" name="check"> 听音乐
                    </label>
                    <label class="checkbox-inline">
                         <input type="checkbox" id="inlineCheckbox3" value="option3" name="check"> 插花
                    </label> 

           </div>
           <div class="form-group">
            <label>学历:</label>
            <br/><select class="form-control" name="sect">
                    <option>专科</option>
                    <option>本科</option>
                    <option>研究生</option>
                    <option>博士</option>
                </select>
           </div>
           
           <button type="submit" class="btn btn-primary" id="submit">提交</button>
        </form>
        <p class="result"></p>
    </div>

</body>
<script>    
//点击 序列表表格内容为字符串,并弹出
 //   $("#submit").click(function(){
   //   alert( $("form").serialize())
 //   })
 //点击将用作提交的表单元素的值编译成拥有name和value对象组成的数组,并弹出
 $("#submit").click(function(){
        var formArray=$("form").serializeArray();
        for(i in formArray){
            
             alert(formArray[i].name+"\n"+formArray[i].value)
        }
    })
</script>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_42952665/article/details/82754715