各位帮忙看一下 下面的jsp页面个 为什么javaScript验证不起作用呢<%@ page language="java" contentType="text/html; charset=utf8" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<meta http-equiv="Content-Type" content="zh-cn" >
<title>登录</title>
<script type="text/javascript">
function cheackUser(){
var userName=document.getElementById("textUserName");
if(userName==""){
document.getElementById("userError").innerHtml("用户名不能为空!");
userName.innerHtml("");
}
}
function cheackPasswd(){
var passwd=document.getElementById("textPasswd");
if(passwd==""){
document.getElementById("pwdError").innerHtml("密码不能为空!");
passwd.innerHtml("");
}
}
function cheackValidNum(){
var validNum=document.getElementById("validNum");
var sessionValidNum=<%=session.getAttribute("validNum")%>;
if(validNum==sessionValidNum){
document.getElementById("validNumError").innerHtml("验证码不正确!");
validNum.innerHtml("");
<%=session.removeAttribute("validNum")%>
return false;
}
else{
return true;
}
}
</script>
</head>
<body>
<form method="post" name="loginForm" action="login"
onsubmit="javaScript:return cheackValidNum(this);">
<table align="center" bgColor="#cccccc" border="0"
cellSpacing="0" width="550">
<tr>
<td align="right" height="47" vAlign="bottom" width="94">用户名:</td>
<td height="47" vAlign="bottom" width="172">
<input type="text" name="textUserName" onblur="cheackUser()"/>
</td>
<a><span class="fade" name="userError"></span></a>
</tr>
<tr>
<td align="right" width="94">密码:</td>
<td width="172">
<input type="password" name="textPasswd" onblur="cheackPasswd()"/>
</td>
<a><span class="fade" name="pwdError"></span></a>
</tr>
<tr>
<td align="right" width="94">
验证码:<img id="validPic" src="image" />
<a href="javascript:;" onclick="document.getElementById('validPic').src = 'image?'+(new Date()).getTime()";
>换一张</a>
</td>
<td width="172">
<input type="text" id= "validNum" name="validNum" value=""/>
</td>
<a><span class="fade" name="validNumError"></span></a>
</tr>
<tr>
<td align="right" height="44" width="94"></td>
<td height="44" width="172" >
<input type="submit" name="Submit" value="提交">
<input type="button" name="Rest" value="重置">
</td>
</tr>
</table>
</form>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<meta http-equiv="Content-Type" content="zh-cn" >
<title>登录</title>
<script type="text/javascript">
function cheackUser(){
var userName=document.getElementById("textUserName");
if(userName==""){
document.getElementById("userError").innerHtml("用户名不能为空!");
userName.innerHtml("");
}
}
function cheackPasswd(){
var passwd=document.getElementById("textPasswd");
if(passwd==""){
document.getElementById("pwdError").innerHtml("密码不能为空!");
passwd.innerHtml("");
}
}
function cheackValidNum(){
var validNum=document.getElementById("validNum");
var sessionValidNum=<%=session.getAttribute("validNum")%>;
if(validNum==sessionValidNum){
document.getElementById("validNumError").innerHtml("验证码不正确!");
validNum.innerHtml("");
<%=session.removeAttribute("validNum")%>
return false;
}
else{
return true;
}
}
</script>
</head>
<body>
<form method="post" name="loginForm" action="login"
onsubmit="javaScript:return cheackValidNum(this);">
<table align="center" bgColor="#cccccc" border="0"
cellSpacing="0" width="550">
<tr>
<td align="right" height="47" vAlign="bottom" width="94">用户名:</td>
<td height="47" vAlign="bottom" width="172">
<input type="text" name="textUserName" onblur="cheackUser()"/>
</td>
<a><span class="fade" name="userError"></span></a>
</tr>
<tr>
<td align="right" width="94">密码:</td>
<td width="172">
<input type="password" name="textPasswd" onblur="cheackPasswd()"/>
</td>
<a><span class="fade" name="pwdError"></span></a>
</tr>
<tr>
<td align="right" width="94">
验证码:<img id="validPic" src="image" />
<a href="javascript:;" onclick="document.getElementById('validPic').src = 'image?'+(new Date()).getTime()";
>换一张</a>
</td>
<td width="172">
<input type="text" id= "validNum" name="validNum" value=""/>
</td>
<a><span class="fade" name="validNumError"></span></a>
</tr>
<tr>
<td align="right" height="44" width="94"></td>
<td height="44" width="172" >
<input type="submit" name="Submit" value="提交">
<input type="button" name="Rest" value="重置">
</td>
</tr>
</table>
</form>
</body>
</html>
解决方案 »
- weblogic启动web工程包java.lang.NoSuchMethodError
- java执行系统命令,为啥要copy流
- 关于axis的配置问题,请高手指教
- 大家给点j2ee学习的意见,顺便散分!!!
- 问个hibernate集合映射的问题:集合外键如何不指向主键?
- struts中tomcat问题
- 【求助】ajax获得数据后动态添加options
- 基于jsp和j2ee的在线考试系统如何搭建
- jbuilder中,怎么将html文件利用jdom结构化,哪位大虾能帮帮忙,小女子不胜感激!
- 急。。。部署在linux环境下的javaWeb项目如何使用mencoder进行aac转换到MP3
- js函数多参数获取
- struts1.3 标签怎样循环map?
function cheackUser(){
var userName=document.getElementById("textUserName").value;//要判断这个value为空吗,而不是这个element对象
if(userName==""){
document.getElementById("userError").innerHtml("用户名不能为空!");
//userName.innerHtml("");
userName.value="";//改成这个
}
}
cheackPasswd同理function cheackValidNum(){
var validNum=document.getElementById("validNum").value;//同理
var sessionValidNum=<%=session.getAttribute("validNum")%>;
if(validNum==sessionValidNum){//验证码相同怎么提示不正确???
document.getElementById("validNumError").innerHtml("验证码不正确!");
validNum.value="";
<%=session.removeAttribute("validNum")%>
return false;
}
else{
return true;
}
}
你想在JS中去执行JSP Scriptlet代码是做不到的。在JS执行的时候,JSP Scriptlet已经执行过了,变成死的(不变的)字符串了。
onblur 失去焦点的时候 进JS方法吗?
这样应该是可以的吧,楼主就是想把验证码赋值给sessionValidNum,并在session中删除,这些事情在js生成的时候完成的啊,并不是在js执行的时候完成的,换句话,在容器讲jsp转换成servlet的时候,jsp脚本的工作就完成了
=>
var validNum=document.getElementById("validNum").value;
or
var validNum=document.getElementById("validNum").text;
var userName=document.getElementById("textUserName");
var validNum=document.getElementById("validNum");把这两处改为下面的代码: var userName=document.getElementById("textUserName").value;
var validNum=document.getElementById("validNum").value;
function cheackUser(){
var userName=document.getElementById("textUserName").value;
if(userName==""){
document.getElementById("userError").innerHtml("用户名不能为空!");
userName.innerHtml("");
}
}
function cheackPasswd(){
var passwd=document.getElementById("textPasswd").value;
if(passwd==""){
document.getElementById("pwdError").innerHtml("密码不能为空!");
passwd.innerHtml("");
}
}
function cheackValidNum(){
var validNum=document.getElementById("validNum").value;
var sessionValidNum=<%=session.getAttribute("validNum")%>;
if(validNum==sessionValidNum){
document.getElementById("validNumError").innerHtml("验证码不正确!");
validNum.innerHtml("");
<%=session.removeAttribute("validNum");%>
return false;
}
else{
return true;
}
}
</script>因为你比较的是对象而不是对象里的值.所以验证不起效果
第三个方法 应该只能使用一次, 第二次在不刷新session的情况下 已经取不到新的验证码了
跟标签不写ID没有关系 getElementById方法是顺序检测的 先ID 没有就用NAME
这个应该去掉 sorry