请高手解决下关天jsp页面表单验证

zwei27 2009-04-10 09:18:21
我看了下网上,网上介绍的主要是在<form action=""><input ...></form>里进行表单验证,我放进我的<html:form action=""><html:property=""></html:form>根本显示不了,起不了作用,请问该怎么写js验证
...全文
488 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
专业二三维GIS 2009-04-10
  • 打赏
  • 举报
回复
楼主,根据你贴的源代码看,该页提交后是会执行验证函数的,但是我发现了一点问题:
var boodid=document.forms[0].boodid.value;
...
...
if(boodid < 15 && boodid >20)
{
alert("身份证号只能是15到20位数字!");
return false;
}

你这个boodid是身份证号码,而不是身份证号码的长度啊,怎么能和整数去比较大小?

另外
if(re1.exec(teacheremail))

是不是应该改成
if(re1.exec(teacheremail)==null)

别的我就没再看了,问题不是很大,是你验证函数里的脚本有问题
zwei27 2009-04-10
  • 打赏
  • 举报
回复
11楼说的什么意思?什么onsubmit?
zwei27 2009-04-10
  • 打赏
  • 举报
回复
原代码:function checkEdit()
{
var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";
var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
var re = new RegExp(regu);
var re1 = new RegExp(myReg);
var phoneRegWithArea = /^[0][1-9]{2,3}-[0-9]{5,10}$/;
var phoneRegNoArea = /^[1-9]{1}[0-9]{5,8}$/;
var prompt = "您输入的电话号码不正确!"
var re2 = new RegExp(phoneRegWithArea);
var re3 = new RegExp(phoneRegNoArea);
var teachname=document.forms[0].teachname.value;
var boodid=document.forms[0].boodid.value;
var teacheremail=document.forms[0].teacheremail.value;
var teachaddress=document.forms[0].teachaddress.value;
var teachpostcode=document.forms[0].teachpostcode.value;
var teachphone=document.forms[0].teachphone.value;
if(re.exec(teachname)==null)
{
alert("姓名只能由数字、字母、或汉字组成!");
return false;
}
if(boodid < 15 && boodid >20)
{
alert("身份证号只能是15到20位数字!");
return false;
}
if(re1.exec(teacheremail))
{
alert("请输入正确的email格式!");
return false;
}
if(teachaddress == null)
{
alert("地址不能为空!");
return false;
}
if(teachpostcode==null)
{
alert("邮政编码不能为空!");
return false;
}
if(re2.exec(teachphone))
{
alert(prompt);
return false;
}
if(re3.exec(teachphone))
{
alert(prompt);
return false;
}
return true;
}
</script>

<body>
<center><font size="2" face="黑体">修改老师信息</font></center>
<form name="teachForm" method="post" action="/Wochz/geteditteach.do" enctype="multipart/form-data" onsubmit="return checkEdit()">
<table border="1" align="center">
<tr>
<td align="center">老师姓名</td>
<td align="center"><input type="text" name="teachname" value="t03"></td>
</tr>
<tr>
<td align="center">身份證號</td>
<td align="center"><input type="text" name="boodid" value="429004198508271134"></td>
</tr>
<tr>
<td align="center">性別</td>
<td align="center">
<select name="teachsex"><option value="男">男</option>
<option value="女">女</option></select></td>
</tr>
<tr>
<td align="center">邮箱</td>
<td align="center"><input type="text" name="teacheremail" value=""></td>
</tr>
<tr>
<td align="center">生日</td>
<td align="center"><input type="text" name="teachbirthday" value="1985-8-27" onclick="getDateString(this,oCalendarChs)"></td>
</tr>
<tr>
<td align="center">地址</td>
<td align="center"><input type="text" name="teachaddress" value="----"></td>
</tr>
<tr>
<td align="center">郵政編碼</td>
<td align="center"><input type="text" name="teachpostcode" value=""></td>
</tr>
<tr>
<td align="center">聯系電話</td>
<td align="center"><input type="text" name="teachphone" value="13528402415"></td>
</tr>

<tr>
<td align="center"><input type="submit" value="提交"></td>
<td align="center"><input type="reset" value="重写"></td>
</tr>
</table>
</form>
  • 打赏
  • 举报
回复
onsubmit
专业二三维GIS 2009-04-10
  • 打赏
  • 举报
回复
你检查一下你的jsp标签在浏览器里生成的html源代码,很容易就会发现问题,如果你发现不了,把生成的源代码贴出来.
zwei27 2009-04-10
  • 打赏
  • 举报
回复
这个页面是以前的: <form action="/Wochz/getschooladdteach.do" enctype="multipart/form-data" method="post" onsubmit="return validateLogin()" >
<table border="0">
<tr>
<td>老师帐号 </td>
<td> <input type="text" name="teachid" id="teachid" > </td>
</tr>
</form>这个可以用网上的js表单验证

这个才是,我用了上面的几个朋友教我,还是显示不了:
function checkEdit()
{
var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";
var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
var re = new RegExp(regu);
var re1 = new RegExp(myReg);
var phoneRegWithArea = /^[0][1-9]{2,3}-[0-9]{5,10}$/;
var phoneRegNoArea = /^[1-9]{1}[0-9]{5,8}$/;
var prompt = "您输入的电话号码不正确!"
var re2 = new RegExp(phoneRegWithArea);
var re3 = new RegExp(phoneRegNoArea);
var teachname=document.forms[0].teachname.value;
var boodid=document.forms[0].boodid.value;
var teacheremail=document.forms[0].teacheremail.value;
var teachaddress=document.forms[0].teachaddress.value;
var teachpostcode=document.forms[0].teachpostcode.value;
var teachphone=document.forms[0].teachphone.value;



if(teachaddress == null)
{
alert("地址不能为空!");
return false;
}
if(teachpostcode==null)
{
alert("邮政编码不能为空!");
return false;
}


return true;
}

<html:form action="/geteditteach" onsubmit="checkEdit()" >
<table border="1" align="center">
<tr>
<td align="center">老师姓名 </td>
<td align="center"> <html:text property="teachname"/> </td>
</tr>
</html:form>
zloveg 2009-04-10
  • 打赏
  • 举报
回复
htmlform 是struts的form标签 你的form的name必须和struts里面配置的form的那么一样 action里面也不能加应用名 你加了这个return validateLogin()" 说明你要用struts的验证框架 你就必须在验证框架里面去配置 先不用验证 看能不能出来 还有你提交的input 也就是html:text这个也应该和你的定义的form bean类里面的属性名保持一致 验证框架配置好后 return validateLogin()" 这个会自动将你验证框架配置的内容转换为js 的
zwei27 2009-04-10
  • 打赏
  • 举报
回复
是不是我用的Myecipse6.0不支持?上面的几个朋友是不是能用上?
zwei27 2009-04-10
  • 打赏
  • 举报
回复
还是不行
function checkEdit()
{
var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";
var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
var re = new RegExp(regu);
var re1 = new RegExp(myReg);
var phoneRegWithArea = /^[0][1-9]{2,3}-[0-9]{5,10}$/;
var phoneRegNoArea = /^[1-9]{1}[0-9]{5,8}$/;
var prompt = "您输入的电话号码不正确!"
var re2 = new RegExp(phoneRegWithArea);
var re3 = new RegExp(phoneRegNoArea);
var teachname=document.forms[0].teachname.value;
var boodid=document.forms[0].boodid.value;
var teacheremail=document.forms[0].teacheremail.value;
var teachaddress=document.forms[0].teachaddress.value;
var teachpostcode=document.forms[0].teachpostcode.value;
var teachphone=document.forms[0].teachphone.value;



if(teachaddress == null)
{
alert("地址不能为空!");
return false;
}
if(teachpostcode==null)
{
alert("邮政编码不能为空!");
return false;
}


return true;
}

<html:form action="/geteditteach" onsubmit="checkEdit()" >
<table border="1" align="center">
<tr>
<td align="center">老师姓名</td>
<td align="center"><html:text property="teachname"/></td>
</tr>
</html:form>
ldm1011 2009-04-10
  • 打赏
  • 举报
回复
<html:form action="aaaa.do" onsubmit="doCheck()">
zwei27 2009-04-10
  • 打赏
  • 举报
回复
那我试下
zwei27 2009-04-10
  • 打赏
  • 举报
回复
<html:form action=""> <html:property=""> </html:form> 是JSP标签
我说明下,我增加页面用的是这样的:<form action="/Wochz/getschooladdteach.do" enctype="multipart/form-data" method="post" onsubmit="return validateLogin()" >
<table border="0">
<tr>
<td>老师帐号</td>
<td><input type="text" name="teachid" id="teachid" ></td>
</tr>
</form>这个可以用网上的js表单验证
可是修改的页面我也想用js验证:
<html:form action="/getschooleditstu" method="post" onsubmit="return validateLogin()" >
<table border="0">
<tr>
<td>学生姓名</td>
<td><html:text property="username" /></td>
</tr>
<tr>
<td>身份证号</td>
<td><html:text property ="id" /></td>
</tr>
</html:form>
验证的js代码还是跟原来的一样,实现不了,在网上找的也试过
Epiphone 2009-04-10
  • 打赏
  • 举报
回复
一样的
<script>
function check(){
if(document.forms[0].userName.value==""){
alert("is null");
{
}
</script>
<html:form action="/regist.do" onsubmit="check()">
<html:property="userName">

</html:form>
专业二三维GIS 2009-04-10
  • 打赏
  • 举报
回复
<html:form action=""> <html:property=""> </html:form>

你这是一个jsp标签吧? 标签实际上是服务端的代码,最终在浏览器打开的时候还是会生成HTML代码,你先说明你的问题再来问吧.
专业二三维GIS 2009-04-10
  • 打赏
  • 举报
回复
上支了? 不懂楼主的意思
是"去" 吧? 是struts标签那个吗?
zwei27 2009-04-10
  • 打赏
  • 举报
回复
发布上支了,你支看下
专业二三维GIS 2009-04-10
  • 打赏
  • 举报
回复
说来听听
zwei27 2009-04-10
  • 打赏
  • 举报
回复
又有个问题,一直困扰我的,不小得楼上的能不能帮我
zwei27 2009-04-10
  • 打赏
  • 举报
回复
我晕死了,,犯一些低级错误,楼上的谢谢你

81,110

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧