批量处理页面中所有单选、复选(至少选一个)

<script type="text/javascript">
			//trim
			String.prototype.Trim = function()   
			{   
				return this.replace(/(^\s*)|(\s*$)/g, "");   
			}   
			//数组去重复
			Array.prototype.unique = function () {
			var tempArr = [];
			var tempObj = {};
			for (var i = 0; i < this.length; i++) {
				if (!(this[i] in tempObj) || !(this[i] === tempObj[this[i]])) {
					tempArr.push(this[i]);
					tempObj[this[i]] = this[i]; // 这个可以用保存重复的元素
				}
			}
			return tempArr;
			}
			//验证表单
			function checkForm(){
				var flag = true;
				//所有复选框
				var checkboxs = new Array();
				//所有单选框
				var radios = new Array();
				//所有单选、复选的名字
				var rNames = new Array();
				
				var cNames = new Array();
				
				//单选和多选
				var inputs = document.getElementsByTagName("input");
				
				//挑选出所有单选复选按钮
				for(i=0;i<inputs.length;i++){
					
					if(inputs[i].type=='radio'){
						radios.push(inputs[i]);
					}
					if(inputs[i].type=='checkbox'){
						checkboxs.push(inputs[i]);
					}
				}
				
				
				//获取所有单选、复选的名字(无重复)
				for(i=0;i<radios.length;i++){
						rNames.push(radios[i].name);
				}
				for(i=0;i<checkboxs.length;i++){
						cNames.push(checkboxs[i].name);
				}
				//去重
				cNames = cNames.unique();
				rNames = rNames.unique();
				//验证选择情况(必须选一个)
				for(i=0;i<rNames.length;i++){
					flag = flag && isChecked(rNames[i]);
					if(!flag){
						alert('所有题目都要选择!');
						document.getElementsByName(rNames[i])[0].focus();
						return false;
					}
				}
				for(i=0;i<cNames.length;i++){
					flag = flag && isChecked(cNames[i]);
					if(!flag){
						alert('所有题目都要选择!');
						document.getElementsByName(cNames[i])[0].focus();
						return false;
					}
				}
				
				//处理问答 
				return flag;
				
			}
			//判断某个单选或复选按钮是否被选中至少一个
			function isChecked(chkName){
				var cps = document.getElementsByName(chkName);
				var chk = false;
				for(var i=0;i<cps.length;i++){
					chk = chk || cps[i].checked;
					if(chk){
						break;
					}
				}
				return chk
			}
		</script>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值