1. 程式人生 > >用jq實現購物車複選框的互動功能

用jq實現購物車複選框的互動功能

動態生成多行復選框

var count1=0;
var count2=0;

var t1 = $("#fun1");	 
$.getJSON("servlet/FindState",null,function(k){
$(k).each(function(i,n){
		count1++;
		t1.append("<tr><td align='left' style='padding-left:20px'><input class='xx1' type='checkbox'/>"+n.state+"</td></tr>");
	});	
});

var t2 = $("#fun2");
$.getJSON("servlet/FindType",null,function(k){
	
	$(k).each(function(i,n){
		count2++;
		t2.append("<tr><td align='left' style='padding-left:20px'><input class='xx2' type='checkbox'/>"+n.TYPE+"</td></tr>");
	});
});

點選主複選框,子複選框被點亮
$("#label1").click(function(){
	if($(this).prop("checked")){
		$(".xx1").prop("checked",true);
	}else{
		$(".xx1").prop("checked",false);
	}	
});
$("#label2").click(function(){
	if($(this).prop("checked")){
		$(".xx2").prop("checked",true);
	}else{
		$(".xx2").prop("checked",false);
	}	
});

當子複選框全部選中時,主複選框被選中;當子複選框都為選中時,主複選框取消選中;
var n11=0;

var arry1=new Array();
$("#fun1").on("click",".xx1,#label1",function(){
	
	if($(this).prop("checked"))
	{
	    arry1.splice(0,arry1.length);//清空陣列
		//arry1.push($(this).parent().text());
		$(".xx1").each(function(i){
			   if($(this).prop("checked")){
				n11++;
				arry1.push($(this).parent().text());
			}
		});
		console.log(arry1);
		console.log(arry1.length);
		$.ajax({  
		    url : "servlet/Changestate",
		    traditional: true,
		    data : {"arry1" : arry1},  
		    type : "post"  
		});
		if(n11==count1)
		{
			//console.log(count1);//外面取不到值,這裡取到值的未解之謎
			$("#label1").prop("checked",true);
			n11=0;
		}
		n11=0;
	}else{
		$("#label1").prop("checked",false);
	}	
});
var n12=0;

$("#fun2").on("click",".xx2,#label2",function(){
	
	if($(this).prop("checked"))
	{
		$(".xx2").each(function(){
			   if($(this).prop("checked")){
				n12++;
				//console.log(n12);
			}
		});
		if(n12==count2)
		{
			//console.log(count2);//外面取不到值,這裡取到值的未解之謎
			$("#label2").prop("checked",true);
			n12=0;
		}
		n12=0;
	}else{
		$("#label2").prop("checked",false);
	}	
});
如何使用ajax向severlet傳送一個數組型別的資料
$.ajax({  
		    url : "servlet/Changestate",
		    traditional: true,
		    data : {"arry1" : arry1},  
		    type : "post"  
		});