JQuery表单序列化方式

使用场景:ajax提交表单数据

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>JQuery的表单序列化</title>
	</head>
	<body>
		<form id="submitForm">
		    <input type="text" name="username" />
		    <input type="text" name="password" />
			<input type="submit" value="提交"/>
		 </form>
	</body>
</html>
  • serialize()

    $("#submitForm").serialize();  
    

    把form表单的值序列化成字符串,格式如下:

    username=admin&password=123456

    注意:必须存在name属性

  • serializeArray()

     $("#submitForm").serializeArray();
    

    把form表单的值序列化成JSON 对象数组,格式如下:

    [{name: “username”,value: “admin”}, {name: “password”,value: “123456”}]

    console.info(JSON.stringify(data));
    [{"name": "username","value": "admin"},{"name": "password","value": "123456"}]
    
  • serializeObject()

    注意:serializeObject()方法非jquery自带,需自行扩展。封装一个方法:

    //给jQuery添加一个方法
         jQuery.fn.serializeObject = function () {
    		var formData = {};
    		var formArray = this.serializeArray();
    		 for(var i = 0, n = formArray.length; i < n; ++i){
    			 formData[formArray[i].name] = formArray[i].value;
    		 }
    		 return formData;
    	};
     
        $("#submitForm").serializeObject();	
    

    把form表单的值序列化成一个json对象,格式如下:

    {username: admin,password: 123456}

  • JSON.parse()

    将字符串解析成Json对象

    var str = '{"key1": "value1","key2": "value2","key3": "value3"}';  
    var obj = JSON.parse(str);  
    

    结果:{key1: “value1”, key2: “value2”, key3: “value3”}

  • JSON.stringify()

    将Json对象解析成字符串

    var str = {key1: "value1", key2: "value2", key3: "value3"};
    var obj = JSON.stringify(str);
    

    结果:{“key1”:“value1”,“key2”:“value2”,“key3”:“value3”}

    常见问题

    $(“#form1”). serialize()后台获取不到表单中属性为disabled的元素的值的解决办法

    当属性设置为"disabled"时,提交表单时,select的值无法传递,提交前移除disabled属性$(“#contentType”).removeAttr(“disabled”); 即可

    $("#id").removeAttr("disabled");
    var data = $("#form1").serialize();
    $("#id").attr("disabled","disabled");
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值