错误操作
当获取用户输入值位于事件发生之前,即页面刚加载完毕时就获取了文本框中的数据此时数据时空的,后续用此做操作会出现错误
//获取用户输入的用户名
var un = document.getElementById("username").value;
//定义检验用户名函数
function checkusername() {
//获取用户输入的值
var flag1 =reg_username.test(un);
//假如用户名正确输入图片
if(flag1){
var s_username = document.getElementById("s_username");
s_username.innerHTML="<img src='img/gou.png'>";
return flag1;
}else{
var s_username = document.getElementById("s_username");
s_username.innerHTML="用户名格式错误";
return flag1
}
}
此时的un为在页面加载完毕时,就获取了文本框中的信息,但此时文本框中无输入信息,所以var flag1 =reg_username.test(un);
根据正则表达式判断始终都为false,即使输入正确的数据 在检验函数内也没有重新获取用户输入值的语句,所以始终都会提示 用户名格式错误
正确操作
将获取用户输入值语句,放在函数内,从而确保是在用户输入数据后,事件发生调用函数获取用户输入的数据,那么后续即可正常进行正则表达式的判断 从而完成对用户输入用户名的校验
定义在函数内部即可