JS 焦点失去 很卡 请高手求救 不胜感激!

来源:百度知道 编辑:UC知道 时间:2024/06/28 06:35:17
我编了个注册界面,里面出生日期用的是文本框。想用JS 实现如下的功能:
当年份输入不符,在失去焦点时 相应做出提示,月份和日期类同。
问题:
当单独执行nian函数或yue 正常运行 。可一旦整合在一起运行时就卡死了。(JS代码如下:)
function nian()
{
if(!IsNum(form1.T22.value))
{mas.innerHTML='请输入数字格式!';
form1.T22.select();
}else
{if(form1.t22.value>2000 || form1.t22.value<1948)
{mas.innerHTML='请输入符合的年份!';
form1.T22.select();
}
else
{
mas.innerHTML='';
}
}
}

function yue()
{
if(!IsNum(form1.T24.value))
{ mas.innerHTML='请输入数字格式!';
form1.T24.select();

}else
{if(form1.T24.value>12 || form1.T24.value<1)
{mas.innerHTML='请输入符合的月份!';
form1.T24.select();
}
else{
mas.innerHTML='';
}
}
}

function IsNum(num){
var reNum=/^\d*$/;
return(reNum.test(num));
}

可能同时验证的时候,
年和月都判断为假,那么两个input会相互抢夺焦点.
这个应该就是会导致很卡的原因.
一般解决方法是把事件改掉.用onclick代替onblur!

是大小写的问题,js区分大小写,t22和T22是不一样的,另外注意的你的代码格式,我给你改好了

<script>
function nian() {
if (!IsNum(form1.T22.value)) {
mas.innerHTML = '请输入数字格式!';
form1.T22.select();
} else {
if (form1.T22.value > 2000 || form1.T22.value < 1948) {
mas.innerHTML = '请输入符合的年份!';
form1.T22.select();
} else {
mas.innerHTML = '';
}
}
}

function yue() {
if (!IsNum(form1.T24.value)) {
mas.innerHTML = '请输入数字格式!';
form1.T24.select();
} else {
if (form1.T24.value > 12 || form1.T24.value < 1) {
mas.innerHTML = '请输入符合的月份!';
form1.T24.select();
} else {
mas.innerHTML='';
}
}
}

function IsNum(num) {
var reNum = /^&