2つのjqueryプラグイン:フォームをシーケンス化し、checkboxの全選択を処理


フォームデータをJSONオブジェクトに変換し、checkboxのセットをすべて選択し、すべて選択しない、半選択の問題を処理します.
前のプラグインは他の人のを回転して、后の1つは自分で书いたので、高い人にどうぞよろしくお愿いします:)

<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>