用jq實現購物車複選框的互動功能
阿新 • • 發佈:2019-02-07
動態生成多行復選框
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); } });
當子複選框全部選中時,主複選框被選中;當子複選框都為選中時,主複選框取消選中;
如何使用ajax向severlet傳送一個數組型別的資料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({
url : "servlet/Changestate",
traditional: true,
data : {"arry1" : arry1},
type : "post"
});