<div>
<input name="pointa" value="16" type="radio" />题目1答案a
<input name="pointa" value="18" type="radio" />题目1答案b
<input name="pointa" value="20" type="radio" />题目1答案c
<input name="pointa" value="12" type="radio" />题目1答案d
</div>
<div>
<input name="pointb" value="16" type="radio" />题目2答案a
<input name="pointb" value="20" type="radio" />题目2答案b
<input name="pointb" value="18" type="radio" />题目2答案c
<input name="pointb" value="12" type="radio" />题目2答案d
</div>
<div>
<input name="pointc" value="16" type="radio" />题目3答案a
<input name="pointc" value="20" type="radio" />题目3答案b
<input name="pointc" value="18" type="radio" />题目3答案c
<input name="pointc" value="12" type="radio" />题目3答案d
</div>
<!-- 引入JQ -->
<script>
//循环选中的答案,可以定义一个数组循环,我这里的name值是pointa,b,c所以定义个数组循环它;PS这种是不灵活的,后端的题目循环不要用这种定义数组方法;可以参考each循环
$("input").click(function(){
var $_array = ['a','b','c'];//定义数组
// 值相加
var total = 0;//定义分数的初始值
// 未选中问题点
var _top = true;//定义答案是否都选中可以提交到后端
// 返回数组未选中的坐标
var $_index_ = [];//返回未选中的题目
// 返回选择的题目
var $data = {};//返回选中的题目然后提交给后端记录用户选了那些题,不能用[]定义,传给后端会收不了
for (var arri=0;arri<$_array.length;arri++)
{
//查看元素选中的题,$_array[arri] 意思为 $_array是数组[0=>'a',1=>'b',2=>'c'];然后arri是坐标从0开始
//这样解释为取出坐标的值
var point_val = $('input:radio[name='+"point"+$_array[arri]+']:checked').val();
//这里判断哪个问题没有值,意思未被选中
if(point_val==null){
// console.log("请选中第"+arri+"问题");
//把未取中的值加入素组;方便后面提示用户那些题没选
$_index_.push(arri);
_top = false;
}else{
//console.log('选中了'+$_array[arri]+'值为'+point_val)
total = total+point_val*1;//总分
$data[$_array[arri]] = point_val;//选中的题目传给后端
}
}
//判断是否可以传入后端
if(_top ==false){
}else{
$.ajax({
url:"index.php",
data:{
total:total,//总分
topic:JSON.stringify($data)//选中的答案把字符串json改为json数据传递后端
},
type: "POST",
dataType: "JSON",
//traditional: true,
success:function(msg){
},
error:function(){
alert('failed!');
},
});
}
})
</script>