【知识记录】Form表单中多组radio及checkbox的验证和ajax提交

最近在项目中用到的一个小功能,用于验证在线考试试卷(单选及多选)填写的完整度,并将题号与所选项提交到后台。

  		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);
	    }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值