各位好
近日在JS页面校验开发中,遇到一个对对多个区间类文本框,判断是否连续喝重叠的问题,请各位大虾帮忙看下,有什么高招,先谢了~
需要达到的效果:
在页面上有以下几组年龄段起始和终止年龄段的文本框,需要校验:
(1)10~50之间的区间是否都覆盖到了(比如:夏利中31~34就没被覆盖)。
(2)各个年龄段之间是否有交替(比如:年龄段1和2就在15~20岁之间交替)
要校验的输入对象年龄段1: 10~20年龄段2: 15~30年龄段3: 35~50
近日在JS页面校验开发中,遇到一个对对多个区间类文本框,判断是否连续喝重叠的问题,请各位大虾帮忙看下,有什么高招,先谢了~
需要达到的效果:
在页面上有以下几组年龄段起始和终止年龄段的文本框,需要校验:
(1)10~50之间的区间是否都覆盖到了(比如:夏利中31~34就没被覆盖)。
(2)各个年龄段之间是否有交替(比如:年龄段1和2就在15~20岁之间交替)
要校验的输入对象年龄段1: 10~20年龄段2: 15~30年龄段3: 35~50
解决方案 »
- 为什么在onclick下获取不了i?是闭包问题吗?
- 寻找一个可以动态给父节点添加子节点的树形的Demo
- hookee 进来看一下,还是昨天的那个问题JS分类菜单
- 谁懂这是什么意思啊!! 'DHTMLgoodies_formTooltip' 未定义
- 为什么我的数据库会有有乱码
- 吼吼,好久没来拉,散分哦
- EasyUI的datagrid中隐藏每页显示的记录条数的那个select控件
- 如何让下拉框同时具有录入功能
- 怎样在下拉菜单onchangd时,显示不同个数的文本框
- iframe子页面获取父页面的url
- Extjs的grid如何锁定列
- 请教高手:如何在chrome中打开新页面?页面的url是在点击之后动态生成的。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function addage(){
var div=document.getElementById("test");
var input=document.createElement("input");
input.type="text";
input.onblur=check;
div.appendChild(input);
var br=document.createElement("br");
div.appendChild(br);
}
function check(){
var value=this.value;
var reg=/^[1-9]\d*~[1-9]\d*$/;
if(!reg.test(value)){
alert("格式不对");
this.value="";
}
var div=document.getElementById("test");
var text=div.getElementsByTagName("input");
var target=this.value.split("~");
target[0]=parseInt(target[0]);
target[1]=parseInt(target[1]);
if(target[0]>target[1]){
alert("范围不对");
this.value="";
return;
}
for(var i=0;i<text.length;i++){
if(this!=text[i]){
var range=text[i].value.split("~");
range[0]=parseInt(range[0]);
range[1]=parseInt(range[1]);
if(target[0]<=range[1]&&target[0]>=range[0]){
alert(target[0]+"与第"+(i+1)+"个年龄段交替");
this.value="";
}else if(target[1]<=range[1]&&target[1]>=range[0]){
alert(target[1]+"与第"+(i+1)+"个年龄段交替");
this.value="";
}else if(target[0]<range[0]&&target[1]>range[1]){
alert("包围了第"+(i+1)+"个年龄段");
this.value="";
}
}
}
}
function checks(){
var t=[];
var div=document.getElementById("test");
var text=div.getElementsByTagName("input");
for(var i=0;i<text.length;i++){
var range=text[i].value.split("~");
t.push(range[0]);
t.push(range[1]);
}
t.sort(asc);
for(var i=2;i<t.length;i=i+2){
if(t[i]-t[i-1]>1){
alert(t[i-1]+"到"+t[i]+"缺少值");
return;
}
}
}
function asc(a,b){
return a-b;
}
</script>
</head><body>
<div id="test">
</div>
<input type="button" value="增加年龄段" onclick="addage()"><br/>
<input type="button" value="校验" onclick="checks()">
</body>
</html>
貌似只能挨个测啊 这样试试 等等高手 哈