用jquery获取多组checkbox的值
var chk_value =[];
$('input:checkbox:checked').each(function(){
chk_value.push($(this).val());
});
alert(chk_value.length==0 ?'你还没有选择任何内容!':chk_value);
但是这样写的话,能获取所有的选择,但是不能区分开每道题选的答案各为多少,有什么方法可以获得每道题的答案吗? 展开
<html >
<head>
<title>demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div>
<ul>
<li>1.
<input type="checkbox" name="s1" id="" checked value="1">1
<input type="checkbox" name="s1" id="" value="2">2
<input type="checkbox" name="s1" id="" value="3">3
<input type="checkbox" name="s1" id="" value="4" checked>4
</li>
<li>2.
<input type="checkbox" name="s2" id="" value="1" checked>1
<input type="checkbox" name="s2" id="" value="2" checked>2
<input type="checkbox" name="s2" id="" value="3" checked>3
<input type="checkbox" name="s2" id="" value="4" checked>4
</li>
<li>3.
<input type="checkbox" name="s3" id="" value="1">1
<input type="checkbox" name="s3" id="" checked value="2">2
<input type="checkbox" name="s3" id="" value="3">3
<input type="checkbox" name="s3" id="" value="4">4
</li>
</ul>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(function(){
var chk_value =[];
$('ul li').each(function(){
var str=[];
$(this).find(':checkbox:checked').each(function(){
str.push(this.value);
});
chk_value.push(str)
});
for(var i=0;i<chk_value.length;i++){
alert(i+":"+chk_value[i].join(","));
}
})
</script>
</body>
</html>
我只是写个例子给你 告诉你思路 ul li标签是可以换成别的标签的 你这个模板的话 无非就是$('tr.qitem td').each(function(){ 就可以了
服务器在选择题目的时候把用户的session记下,以session号匹配一个内建的选择题ID列表,这样ID就不会进入客户端而泄露。
客户端生成很多checkbox,提交时$('input.checkbox'),把客户端的数组编号记下,可以省一点流量还能多选。提交到服务器端后处理就很简单了。
我这个是不需要提交到服务器的,只需要取值就可以了,有什么方法区分吗?
如果是动态页面,可以由服务器将正确答案储存在客户段的JS数组里。选择完后直接由客户端比对选择的checkbox编号是不是数组里的。
如果是静态页面,方法也差不多,就是将服务器抽取的过程迁移到客户端,当然不是很安全。抽取后算出正确答案的数组。填完后比对。