两个jquery插件:序列化表单,处理checkbox全选

将表单数据转换成JSON对象,处理一组checkbox全选,全不选,半选的问题
前一个插件是转别人的,后一个的是自己写的,请高人多多指教:)


<html>
<head>
<script type='text/javascript' src="jquery-1.6.4.js"></script>
<script type='text/javascript'>
/*
序列化表单数据到JSON对象
*/
(function($){
$.fn.serializeJson=function(){
var serializeObj={};
var array=this.serializeArray();
var str=this.serialize();
$(array).each(function(){
if(serializeObj[this.name]){
if($.isArray(serializeObj[this.name])){
serializeObj[this.name].push(this.value);
}else{
serializeObj[this.name]=[serializeObj[this.name],this.value];
}
}else{
serializeObj[this.name]=this.value;
}
});
return serializeObj;
};
})(jQuery);


/*
一组checkbox,全选,全不选,半选
*/
(function($){
$.extend({
ckeckboxSelectAll: function(selectAllCheckboxSelector, selectCheckBoxArraySelector){
var selectAllCheckbox = $(selectAllCheckboxSelector);
var selectCheckBoxArray = $(selectCheckBoxArraySelector);
selectAllCheckbox.bind('click', function(e){
selectCheckBoxArray.each(function(index, ck){
ck.checked = selectAllCheckbox[0].checked;
});
});

selectCheckBoxArray.bind('click', function(e){
var allChecked = true;
var allNotChecked = true;
selectCheckBoxArray.each(function(index, c){
if(c.checked){
allNotChecked = false;
}else{
allChecked = false;
}
});
var ck = selectAllCheckbox[0];
if(allChecked){
ck.checked = true;
ck.indeterminate = false;
}
else if(allNotChecked){
ck.checked = false;
ck.indeterminate = false;
}
else{
ck.indeterminate = true;
}

});
}
});
})(jQuery);

$(function(){
$.ckeckboxSelectAll("#all", "input[name='ck']");
});

function submitForm(){
console.log($("#myForm").serializeJson());
}
</script>
</head>
<body>
<form id="myForm" action="http://www.baidu.com" method="GET">
<input name="name"/>
<input name="age"/><br/>
<input type="checkbox" name="ckox" value="1"/>
<input type="checkbox" name="ckox" value="2"/>
<input type="checkbox" name="ckox" value="3"/>
<input type="button" onclick="submitForm()" value="Submit"/>
</form>
<br/><br/>

<br/><br/>
<input type="checkbox" id="all" /><br/>
<hr/>
<input type="checkbox" name="ck" /><br/>
<input type="checkbox" name="ck" /><br/>
<input type="checkbox" name="ck" /><br/>
<input type="checkbox" name="ck" /><br/>
<input type="checkbox" name="ck" /><br/>
<input type="checkbox" name="ck" /><br/>
<input type="checkbox" name="ck" /><br/>
<input type="checkbox" name="ck" /><br/>

</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值