js怎么验证验证码是否填写正确 我有一个image1.jsp生成随机的图片形式验证码,然后把他放到session对象里:session.setAttribute("rand",sRand),我的登录页面login.jsp需要填写验证吗,我想要用js验证是否填写了正确的验证码,我从js里面应该怎么获得image1.jsp中session的值,等待各位好心人指教!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可 以用 java 取到 <%String code = (String)session.getAttribute("rand")%>再将这个值赋给一个js变量 <script>var c = <%=code></script> 我在login.jsp页面设置了一个隐藏文本框,它的value="session.getAttribute("rand"),js获得的该value值,但是session里面每次获得的都是上一个图片上的值,不知道怎么回事啊, 你在请求那个图片 时 后边加一个时间戳 每次请求都是新图片 比如 图片请求url='getImg.jsp?timestamp='+new Date().getTime() login.jsp中的隐藏文本框:<input type="hidden" id="code" value="<%=session.getAttribute("rand")%>"/>js代码:function check(){ var picture = $("#imagnum").val();//获得文本框的值 var rands = $("#code").val();//获得隐藏文本框的值 alert(rands); if(picture!=rands){ alert("您输入的验证码不正确"); return false; }} 校验码:<input type="text" name="imag" id="imagnum"><img id="pic" src="image1"/><a href="javascript:void(0)" onclick="changeImage()">看不清,点击再换一张</a> <input type="hidden" id="code" value="<%=session.getAttribute("rand")%>"/> 就是说你显示的那个地方 每次都是加载的同一个图片 所以 code 是一样的 你那个src是不是可以写成 'image1.jsp?timestamp='+new Date().getTime(),也就是说用户在访问你这个页面时 每次让他去新读一个图过来 我的表达可能不好 呵呵 <img id="pic" src="image1.jsp?timestamp="+new Date().getTime()>中不可以这么写的,而且我不知道这么个想法对不对,因为我第一次加载页面的时候,session里面rand为null,以后每次刷新的时候,获得隐藏文本框里的value值都为图片上一次的值,很郁闷啊,js到底能否验证验证码呢 那 img 标签 里的src 或其他属性 可不可以调你那个changeImg 方法呢 ?我印象里这个方法是可行的 以前学的时候用过 好久没有用了 也记不清了 等待高手来指正 呵呵 1.页面中出现<img id="pic" src="image1.jsp"/>之类的语句时,image1.jsp得到执行,之后会创建session对象。所以,获取session对象中的值的语句必须出现在<img id="pic" src="image1.jsp"/>之后,否则获取的值为空。2.为了防止浏览器缓存,在<a href="javascript:void(0)" onclick="changeImage()">看不清,点击再换一张</a>这条语句中加多个时间戳,具体是在changeImage()函数加给img赋src属性值时加多个(new Date()).getTime()或者Math.random()之类的。 12楼大哥第一点,很有道理,可是我的问题不是那个意思<form method="post" action="login.action"> <table> <tr><td>用户名:</td><td><input type="text" name="userName" id="userName"><span id="infor"></span></td></tr> <tr><td>密码: </td><td> <input type="password" name="passwd" id="passwd"></td></tr> <tr><td>校验码:</td><td><input type="text" name="imag" id="imagnum"><img id="pic" src="image1.jsp"> <a href="javascript:void(0)" onclick="changeImage()">看不清,点击再换一张</a><span id="checkcode" style="color:red">${picterrors}</span> <input type="hidden" id="code" value="<%=session.getAttribute("rand") %>"> </td></tr> <tr><td align="center" colspan="1"><input type="submit" value="登陆" onclick="check()"><input type="reset" value="取消"></td></tr> </table> </form>js代码: function check() { var imagnum = $("#imagnum").val(); var rands = $("#code").val();alert(rands);//第一次页面加载的时候,rands总为null,以后的值每次都是上一张验证码的值 var message; if (imagnum != rands) { message = "验证码错误,请重新填写!" $("#checkcode").html(message); } } 时间控件精确到月,为什么在myeclipse里不管用?求大侠帮忙啊 关于jsp的一些小问题 如何遍历数组? 在javascript 如何定义 接口 ? 新手求助 如何传入参数 为什么在选项卡中百度地图 加了display:none; 会不显示背景 正则如何提取<b></b>之间的数据 js难题,不是高手不要浪费时间 请问如何调用系统的打印函数。 JS根据IE版本控制引入jQuery版本 小白在线等…… js拖放元素在ff下的小问题(- -|| 急。。) js保存窗口问题
<%
String code = (String)session.getAttribute("rand")
%>
再将这个值赋给一个js变量
<script>
var c = <%=code>
</script>
比如 图片请求url='getImg.jsp?timestamp='+new Date().getTime()
js代码:function check(){
var picture = $("#imagnum").val();//获得文本框的值
var rands = $("#code").val();//获得隐藏文本框的值
alert(rands);
if(picture!=rands){
alert("您输入的验证码不正确");
return false;
}
}
<a href="javascript:void(0)" onclick="changeImage()">看不清,点击再换一张</a>
<input type="hidden" id="code" value="<%=session.getAttribute("rand")%>"/>
所以,获取session对象中的值的语句必须出现在<img id="pic" src="image1.jsp"/>之后,否则获取的值为空。
2.为了防止浏览器缓存,在<a href="javascript:void(0)" onclick="changeImage()">看不清,点击再换一张</a>这条语句中加多个时间戳,具体是在changeImage()函数加给img赋src属性值时加多个(new Date()).getTime()或者Math.random()之类的。
<form method="post" action="login.action">
<table>
<tr><td>用户名:</td><td><input type="text" name="userName" id="userName"><span id="infor"></span></td></tr>
<tr><td>密码: </td><td> <input type="password" name="passwd" id="passwd"></td></tr>
<tr><td>校验码:</td><td><input type="text" name="imag" id="imagnum"><img id="pic" src="image1.jsp">
<a href="javascript:void(0)" onclick="changeImage()">看不清,点击再换一张</a><span id="checkcode" style="color:red">${picterrors}</span>
<input type="hidden" id="code" value="<%=session.getAttribute("rand") %>">
</td></tr>
<tr><td align="center" colspan="1"><input type="submit" value="登陆" onclick="check()"><input type="reset" value="取消"></td></tr>
</table>
</form>
js代码: function check() {
var imagnum = $("#imagnum").val();
var rands = $("#code").val();
alert(rands);//第一次页面加载的时候,rands总为null,以后的值每次都是上一张验证码的值 var message;
if (imagnum != rands) {
message = "验证码错误,请重新填写!"
$("#checkcode").html(message);
}
}