onblur事件无法再次触发
<tr>
<td width="20%" height="30" align="right" class="left_txt2">会员名称</td>
<td width="3%" > </td>
<td width="32%" height="30" >
*<input type="text" name="userName" id="userName" placeholder="4-20个由字母 数字 下划线组成的字符" size="30" onblur="return check(1)" />
<span id="checkusername"></span>
</td>
<td width="45%" height="30" class="left_txt" id="tdText"></td>
</tr>
<tr bgcolor="#f2f2f2">
<td width="20%" height="30" align="right" class="left_txt2">昵称</td>
<td width="3%" > </td>
<td width="32%" height="30" >
*<input type="text" value="" name="nickName" id="nickName" placeholder="如:superman" size="30" onblur="check(2)/>
<span id="checknickname"></span>
</td>
<td width="45%" height="30" class="left_txt" id="tdText"></td>
</tr>
<script type="text/javascript">
function check(num){
switch (num){
case 0:
if(document.getElementById("userName").value==""
||document.getElementById("nickName").value==""
||document.getElementById("password").value==""
||document.getElementById("tel").value==""
||document.getElementById("address").value==""){
alert("添加失败,带*为必填项!");
return false;
}else
return true;
break;
case 1:
var username= document.getElementById("userName").value;
var check=document.getElementById("checkusername");
var reg=/[0-9a-zA-Z_]{4,18}/;
if(username==""){
check.style.color="red";
check.innerHTML="会员名不能为空!";
}else if(reg.test(username) != true){
check.style.color="red";
check.innerHTML="会员名称格式错误!";
}
break;
case 2:
var nickname=document.getElementById("nickName").value;
var check=document.getElementById("checknickname");
if(nickname==""){
check.style.color="red";
check.innerHTML="昵称不能为空!";
}
break;
}
}
上面有我的html跟js代码 为什么onblur事件当我不输入内容的时候可以触发 当我再次输入不符合正则表达式的字符时也可以触发,但是当我再次输入符合要求的字符时触发不了?求助 !