想做一个提交表单前先核对输入框内的输入是否合法的效果
这是jsp页面
<form id='f' method="post" action="AddStuServlet" onsubmit="return check();">
学号<br/><input type="text" name="id"/><br/>
姓名<br/><input type="text" name="name"/><br/>
电话<br/><input type="text" name="phone" /><br/>
性别<br/><font color='#5599FF'>男</font><input type="radio" name="sex" value="男" checked="true"/>
<input type="radio" name="sex" value="女"/><font color='#5599FF'>女</font><br/>
年龄<br/><input type="text" name="age"/><br/>
班级<br/><input type="text" name="classname"/><br/>
<input type="submit" value="添加" class="but"/>
<br/>
<input type="reset" value="重写" class="but"/><br/>
</form>
<a href="Operate.jsp">回到首页</a>
这是js代码
// JavaScript Document
function check(){
//浏览器没报js错
alert("1");//成功运行
var id = document.getElementsByName('id')[0].value.replace(/(^\s*)|(\s*$)/g, "");
var phone = document.getElementByName('phone')[0].value.replace(/(^\s*)|(\s*$)/g, "");
var age = document.getElementsByName('age')[0].value.replace(/(^\s*)|(\s*$)/g, "");
var classname = document.getElementsByName('classname')[0].value.replace(/(^\s*)|(\s*$)/g, "");
var errors = document.getElementsByName('error');
var flag = true;
/*每次点击时都先清空错误提示消息*/
for(var i=0; i<errors.length; i++){
errors[i].innerHTML = "";
}
if((/^[1-9]\d{0,1}/.test(id))==false){
errors[0].innerHTML = "学号输入有误,应为非0开头的1-2位数字";
flag = false;
}
if((/^[1-9]{1}\d{10}$/.test(phone))==false){
errors[1].innerHTML = "电话格式有误,应为0开头的11位整数";
flag = false;
}
if((/^[1-9]\d{0,2}$/.test(age))==false){
errors[2].innerHTML = "年龄格式有误,应为非0开头的1-3位数字";
flag = false;
}
if((/^[1-9]{2}[\u4e00-\u9fa5]{2,3}[1-9]{1}[\u73ed]{1}$/.test(classname))==false){
errors[3].innerHTML = "班级名称格式有误,应为'2位数字+2字专业+1位数字+班'";
flag = false;
}
return flag;
}
出现的效果就是无论我输入什么都可以被顺利提交
浏览器没有任何报错,js内写了一个alert也顺利运行了,求解
正则表达式也在菜鸟教程的代码diy处测试过,顺利通过且有效