我点确认之后直接跳转了并没有判断是怎么了
问题描述:
求大神指导
我想点过确认后会有提示哪个写错但是这只要我输入就直接判断并且在输入框后边出现点确认就直接跳转了
我的js
<script >
function checkUser(){
var user=document.getElementById("user")
var reg=/^[a-zA-Z][a-zA-Z0-9]{3,15}$/;
if(reg.test(user)==false){
alert("姓名输入错误")
return false;
}
return true;
}
function checkEmail(){
var email=document.getElementById("email")
var reg=/^\w+@\w+(\.[a-zA-Z]{2,3}){1,2}$/;
if(reg.test(email)==false){
alert("Email格式不正确,例如web@sohu.com");
return false;
}
return true;
}
function checkMobile(){
var mobile=document.getElementById("mobile")
var regMobile=/^1\d{10}$/;
if(regMobile.test(mobile)==false){
alert("手机号码不正确,请重新输入");
return false;
}
mobileId.innerHTML="";
return true;
}
function address(){
var address=document.getElementById("address")
var regaddress=/[A-Za-z]{1,60}$/;
if(regMobile.test(mobile)==false){
alert("手机号码不正确,请重新输入");
return false;
}
mobileId.innerHTML="";
return true;
}
function a(){
checkUser()
checkEmail()
checkMobile()
}
</script>
我html部分
<table class="main" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="hr_1">用户信息添加与修改</td>
</tr>
<tr>
<td style="height:10px;"></td>
</tr>
<form action="user.html" method="post" name="myform" onsubmit="return a()">
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="left">姓名:</td>
<td class="center"><input id="user" type="text" /></td>
<td><div id="user_prompt">输入汉字</div></td>
</tr>
<tr>
<td class="left">电子邮箱:</td>
<td class="center"><input id="email" type="text" /></td>
<td><div id="email_prompt">请正确输入邮箱格式</div></td>
</tr>
<tr>
<td class="left">手机号码:</td>
<td class="center"><input id="mobile" type="text" /></td>
<td><div id="mobile_prompt">请输入11位手机号</div></td>
</tr>
<tr>
<td class="left">地址:</td>
<td class="center"><input id="address" type="text" /></td>
<td><div id="mobile_prompt">不超过60个字符</div></td>
</tr>
<tr>
<td class="left">状态</td>
<td><select id="p" size="1" style="text-align: center ">
<option >全部</option>
<option >启用</option>
<option >禁用</option>
</select></td>
</tr>
<tr>
<td class="left"> </td>
<td class="center"><input name="" type="submit" value="确认"/>
<input type="button" value="取消"onclick="javascrtpt:window.location.href='user.html'"></td>
<td> </td>
</tr>
</table>
</td>
</tr>
</form>
</table>
答
你需要在函数内return false之后,把这个函数的值return出来,地址验证那边你写了mobile,我也顺手改了,代码你拿去试下:
<script>
function checkUser(){
var user=document.getElementById("user").value
var reg=/^[a-zA-Z][a-zA-Z0-9]{3,15}$/;
if(reg.test(user)==false){
alert("姓名输入错误")
return false;
}
return checkEmail();
}
function checkEmail(){
var email=document.getElementById("email").value
var reg=/^\w+@\w+(\.[a-zA-Z]{2,3}){1,2}$/;
if(reg.test(email)==false){
alert("Email格式不正确,例如web@sohu.com");
return false;
}
return checkMobile();
}
function checkMobile(){
var mobile=document.getElementById("mobile").value
var regMobile=/^1\d{10}$/;
if(regMobile.test(mobile)==false){
alert("手机号码不正确,请重新输入");
mobileId.innerHTML="";
return false;
}
return address();
}
function address(){
var address=document.getElementById("address").value
var regaddress=/[A-Za-z]{1,60}$/;
if(regaddress.test(address)==false){
alert("地址不正确,请重新输入");
mobileId.innerHTML="";
return false;
}
return true;
}
function a(){
return checkUser();
}
</script>
答
function a(){
var flag=checkUser()
if(flag===false)
return false;
flag= checkEmail()
if(flag===false)
return false;
flag= checkMobile()
if(flag===false)
return false;
}
还有一种就是 把确认按钮的类型改成button也是可以的,去掉form表单
因为你现在按钮是submit类型 点击之后会提交表单 所以会跳转