最近在项目中用到的一个小功能,用于验证在线考试试卷(单选及多选)填写的完整度,并将题号与所选项提交到后台。
function submitPaper(){
var radioname;
var arrRadio = new Array();
if(confirm("确认要提交试卷吗? 提交后不可修改")){
var inputs = document.getElementById('examForm').getElementsByTagName("input");
for(var i = 0; i < inputs.length; i++){
if(inputs[i].type == "radio" || inputs[i].type == "checkbox"){
if(radioname != inputs[i].name){
arrRadio.push(inputs[i].name);
radioname = inputs[i].name;
}
}
}
for(var i = 0; i < arrRadio.length; i++){
var flag = false;
for(var j = 0; j < document.getElementsByName(arrRadio[i]).length; j++){
if(document.getElementsByName(arrRadio[i]).item(j).checked == true){
flag = true;
continue;
}
}
if(!flag){
alert("试卷填写不完整!请检查是否遗漏了选项");
return false;
}
}
var currHashMap = {};
for(var i = 0; i < arrRadio.length; i++){
for(var j = 0; j < document.getElementsByName(arrRadio[i]).length; j++){
if(document.getElementsByName(arrRadio[i]).item(j).checked == true){
if(currHashMap[arrRadio[i]] != null){
currHashMap[arrRadio[i]] += document.getElementsByName(arrRadio[i]).item(j).value;
continue;
}
currHashMap[arrRadio[i]] = document.getElementsByName(arrRadio[i]).item(j).value;
continue;
}
}
}
var json = JSON.stringify(currHashMap);
$.ajax({
url:"...",
type:"post",
data:{"json":json},
success:function(response){
...
}
});
}
}
后台接收参数:
String jsonStr = request.getParameter("json");
Map<String, String> map = new HashMap<String, String>();
JSONObject json = JSONObject.fromObject(jsonStr);
Iterator<?> keys = json.keys();
while(keys.hasNext()){
String key = (String) keys.next();
String value = json.get(key).toString();
map.put(key, value);
System.out.println(key + " : " + value);
}