求助,js 关闭弹窗后刷新页面如何强制刷新验证码

以验证码的刷新为例验 证 码: 方法一:使用JavaScrip的伪类实现方法二:引入外部文件在html文件的之间引入外部文件//外部文件code.js设置局部刷新函数 function code () { var code = document.getElementByIdx_x_x('code'); code.onclick = function () {this.src='code.php?tm='+Math.random(); }; };另外,如果是想在验证码旁边加上一内容,然后点击该内容验证码刷新的话,可以用下列方法验 证 码:
点击刷新验证码方法一:使用JavaScrip的伪类实现方法二:引入外部文件在html文件的之间引入外部文件//外部文件code.js设置局部刷新函数 function code () { var code = document.getElementByIdx_x_x('code'); var update = document.getElementByIdx_x_x('update'); update.onclick = function () {code.src='code.php?tm='+Math.random(); }; };
<a title="两个
最新教程周点击榜
微信扫一扫refresh-js js强制刷新页面多种方法,history.go() JavaScript 238万源代码下载-
&文件名称: refresh-js
& & & & &&]
&&所属分类:
&&开发工具: Java
&&文件大小: 17 KB
&&上传时间:
&&下载次数: 1
&&提 供 者:
&详细说明:js强制刷新页面多种方法,history.go()-the method to refresh page
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&refresh js.doc
&输入关键字,在本站238万海量源码库中尽情搜索:后使用快捷导航没有帐号?
只需一步,快速开始
查看: 5042|回复: 3
js强制刷新页面,从服务器读取新数据
UID361258在线时间 小时积分1971帖子离线17196 天注册时间
银牌会员, 积分 1971, 距离下一级还需 1029 积分
现在某一页面,机器A和机器B同时打开.
机器A上增加一条数据,插入成功.
机器B用js的.location.reload(true)刷新页面.但是数据还是过去的。
如何刷新到最新的数据?
查了下资料,reload(true)已经是强制从服务器重新载入页面了。
PS:我用右键点IE屏幕&点刷新,就可以刷出新数据
[[i] 本帖最后由 dsqwei1 于
10:56 编辑 ]
UID387007在线时间 小时积分15775帖子离线17196 天注册时间
用location.href看看
UID361258在线时间 小时积分1971帖子离线17196 天注册时间
银牌会员, 积分 1971, 距离下一级还需 1029 积分
原帖由 [i]cloudgamer 于
11:00 发表
用location.href看看
var hrf=window.location.
window.location.href=
UID387007在线时间 小时积分15775帖子离线17196 天注册时间
如果还不行就加一个随机参数例如?temp=12345之类的
Powered byhtml或jsp页面刷新验证码的js方式和jquery方式_HTML教程-织梦者
当前位置:&>&&>& > html或jsp页面刷新验证码的js方式和jquery方式
html或jsp页面刷新验证码的js方式和jquery方式
&img id=&verifyCode& onclick=&refrush_verifyCode(this);&&
&!--当用户点击图片,使图片重新向服务器发送请求--&
&script type=&text/javascript&&
/* js方式 */
function refrush_verifyCode(obj){
obj.setAttribute(&src&, obj.getAttribute(&src&).toString().split(&?&)[0]+ &?time=& + new Date().getTime());
以上就是html或jsp页面刷新验证码的js方式和jquery方式的全文介绍,希望对您学习和使用html网页基础有所帮助.
这些内容可能对你也有帮助
更多可查看HTML教程列表页。
猜您也会喜欢这些文章解决Yii2中刷新网页时验证码不刷新的问题 - 教程 - Yii Framework 中文社区
解决Yii2中刷新网页时验证码不刷新的问题
10665次浏览
在Yii2框架中,如果在表单中使用了验证码,会发现一个奇怪的小问题,就是刷新网页时验证码图片不会跟着刷新。
网上的解决方法
网上的大多数解决方法都是通过修改vendor/yiisoft/yii2/captcha/CaptchaAction.php中的代码来解决,以下两种方法可以任选其一:
1.修改getVerifyCode()方法的参数默认值
将参数$regenerate的默认值由false改为true,这样在不传参数的情况下,程序每次获取验证码时都会重新生成。
2.修改run()方法
在红色箭头指向的地方中,添加一个参数true,同样可以解决问题。
带来的问题
使用上面两种方法确实都可以解决验证码不刷新的问题,但这样会带来一个新的问题,就是在开启表单客户端验证(enableClientValidation)的情况下,即使用户输入了正确的验证码,网页仍然会提示“验证码错误”:
那肿么办呢?在这里我们可以选择关闭表单的客户端验证功能,以此来解决这个问题:
但这种解决方法不是很完美,因为关闭了客户端的验证功能后,表单数据就只能提交到后台后再验证了,这样无疑会增加服务器的压力。
完美解决方法
上面说了那么多,解决方法貌似都不是很完美,其实要完美解决验证码不刷新的问题十分简单,我们不需要修改CaptchaAction.php,只要修改vendor/yiisoft/yii2/captcha/CaptchaValidator.php这个文件就可以了,修改的地方见下图:
在红色箭头指向的地方,将参数false改为true即可完美解决问题。
归根到底,是因为yii2在渲染Captcha小部件的时候,会先输出js验证代码,然后再渲染验证码图片,也就是说,验证码字符串必须在输出js代码前就要重新生成,而CaptchaAction.php中的run()方法是渲染验证码图片的时候调用的,CaptchaValidator.php中的clientValidateAttribute()是输出js代码的时候调用的,所以接下来的道理,相信大家都已经明白了。
支持一下,虽然现在用的是yii1版本,但相信2版本会成为主流。
感谢分享,已赞
修改源码。这个是大忌吧,有没有外部配置可以达到要求
怎么用composer管理。
共 1 条回复
楼主果然厉害。
可以不用改自己写个类重写下里边的方法就ok了
非常抱歉,我把你这个提议提交给yii2了,不知道他们会不会修改。见
共 1 条回复
在sitecontroller(框架自带的控制器)中写验证码,点击刷新一切都是正常的,但是自己写的控制器就会出问题(不刷新或者点击不刷新).应该是我们写的时候写错什么了(主要还是没清楚框架)
通过把你的问题解决方案反馈给开发者,他们并没有采纳,原因见
虽然在一定程度上可以解决,但还是不够完美。
通过把你的问题解决方案反馈给开发者,他们并没有采纳,原因见
虽然在一定程度上可以解决,但还是不够完美。
共 1 条回复
I understood what you're saying. During AJAX calls in the form may happen when you're focusing another input so re-generating captcha code each would've been too weird.
支持大家解决问题
我也发个吧
public function actions()
return array(
'captcha' =& array(
'class' =& 'yii\captcha\CaptchaAction',
'maxLength' =& 5,
'minLength' =& 5,
'width'=&120,
'height'=&'27',
这个大家都知道,在页面中我没用YII的form,而是自己写的表单
&input type="text" id="codeid" name="checkcode" class="form-control" placeholder="验证码"&
&div class="input-group-addon" id="logincode"&
&img src="/res/images/logincode.gif" id="code_img" alt="点击刷新"&
且看JS部分
$(function(){
$("#codeid").focus(function(){
$.get('&?php echo Yii::$app-&urlManager-&createUrl('site/captcha');?&?',{refresh:1},function(data){
evaldata=eval(data);
$("#code_img").attr('src',evaldata.url);
$("#code_img").click(function(){
$.get('&?php echo Yii::$app-&urlManager-&createUrl('site/captcha');?&',{refresh:1},function(data){
evaldata=eval(data);
$("#code_img").attr('src',evaldata.url);
我们通过向/site/captcha?refresh=1发送GET请求,得到的数据如下,
{"hash1":538,"hash2":538,"url":"/backend/web/site/captcha?v=56a8243edb9a8"}
很清楚的我们得到了一个新的验证码URL,
这里说下V,V是用PHP的uniqid()生成的一个唯一码
这个方法不用改YII的任何代码哦
如果你在model里面进行两次验证码的验证那么你的验证就会通不过哦。
YII的验证码不论是生成的时候还是验证的时候都是通过了getVerifyCode,验证通过后会重新在生成一次验证码,所以在model里如果你调用了两次验证的话,就通不过哦
完美解决了我的问题
字体 无法获取 怎么解决
完美完美完美
您需要登录后才可以评论。 |

我要回帖

更多关于 office2016验证码弹窗 的文章

 

随机推荐