用 ecstore 搭建的网店,注册页面如下图:
http://i.imgur.com/PZb51vQ.png
如果输入了错误的图形验证码并点击“获取短信验证码”,原来的图形验证码不会自动刷新,短信平台商说这样不科学,不给提供发短信服务。
所以求懂前端童鞋帮忙处理一下这个问题,移动端注册页面也有同样的需求,理论上可以同理一并解决,搞定之后会有一些现金感谢。
网址就不贴了,有兴趣的童鞋请加我微信 yixtan 了解更多。
1
zhantss 2015-08-26 10:33:37 +08:00
发送短信请求前 ajax 验证下验证码 失败刷新验证码图片 成功继续发送短信请求
不难啊 难道我理解错了? |
2
yangqi 2015-08-26 10:35:51 +08:00
目前的验证码点击会刷新不?这样的话短信验证失败后, js 模拟点击验证码不就可以了。如果现在的验证码也不能刷新,那当我没说
|
5
invite 2015-08-26 10:43:31 +08:00
看不到图片。
|
6
fwings260 2015-08-26 10:45:18 +08:00
可以绑定一个失焦事件,采集你验证码输入框的文本用 ajax 发送后台验证,如果错误提示框显示“验证码错误”刷新验证码呗
或者可以直接表单提交,如果验证不通过(不管验证码还是密码)统统重新生成验证码发过来不就好了么 |
7
zi 2015-08-26 10:46:28 +08:00
jquery 的话, trigger 一下验证码的 click 事件就行了。
|
8
leeyuzhe 2015-08-26 10:52:14 +08:00 2
你直接贴代码,免费就帮你解决了,你这样扭扭捏捏,出 300 块也不一定有人干
|
10
Moker 2015-08-26 10:55:49 +08:00
最后发个链接出来好测试
|
11
zonghua 2015-08-26 10:59:53 +08:00 via iPhone
外联的元素不用 ajax ,你用 javascript 更改一下 img 的 url 就行,随机加一个 Date.now 或者 Math.random ()都可以,浏览器就会去请求
|
12
Moker 2015-08-26 11:09:33 +08:00
表示没看到获取短信验证码的东西
|
13
ljcarsenal 2015-08-26 11:10:09 +08:00
现在不是可以了么
|
15
loading 2015-08-26 11:14:55 +08:00 via Android
如果被免费解决,建议将 300 元改成红包,贴这里,大家抢一下 233
|
16
zikkeung 2015-08-26 11:20:13 +08:00
300 快我来了
|
17
jtam OP @ljcarsenal 输一个错的图形验证码,提示错误之后还是原来的码,运营商说这样不行,要刷新一次。
|
19
ljcarsenal 2015-08-26 11:32:40 +08:00
为什么我这边不是 我输入的是错误的,提示之后就换了
|
20
Moker 2015-08-26 11:36:10 +08:00
看了下代码大概在#298
对返回的错误时 修改一下图片的 src 属性 |
22
b821025551b 2015-08-26 11:53:39 +08:00
trigger 一下“看不清楚?换一个”
|
23
colonel 2015-08-26 11:57:18 +08:00 1
passport-signup.html
function sendVerify (el, data ) { var url = el.href; var textCont = el.getElement ('span span'); el.addClass ('disabled'); textCont.innerHTML = el.get ('text') + '(<i>0</i>)'; var cd = new countdown (textCont.getElement ('i'), { start: 120, secondOnly: true, callback: function (e ) { el.removeClass ('disabled'); textCont.innerHTML = '重发验证码'; } }); Query.send (url, el, data, function (rs ) { if (rs.error ) { changeCode (Module.element (modname, 'img.auto-change-verify-handle')); cd.stop (); el.removeClass ('disabled'); textCont.innerHTML = '重发验证码'; } }); } |
24
Paranoid 2015-08-26 12:52:31 +08:00 1
手机界面 可以这样 手机界面还验证码本身就有 bug
sendVerify 函数 rs.error 后面+上下面 3 行 ( FF +chrome 测试过) var newImage = new Image (); newImage.src = $(".auto-change-verify-handle").attr ("src")+"?time="+new Date (); $(".auto-change-verify-handle").attr ('src', newImage.src ); |
25
Paranoid 2015-08-26 12:52:52 +08:00
手机界面换验证码本身就有 bug
|
26
jtam OP 感谢第一位和第二位加我微信并帮我完美解决问题的两位同学。
同时也感谢其他在本贴中提供方法和思路的好同学们。 |
27
wd0g 2015-08-26 13:42:05 +08:00
来晚了,我的 300 红包啊
|
28
pysama 2015-08-26 15:19:21 +08:00
来晚了。哈哈哈
在“点击获取短信验证码”的时候先 ajax 校验验证码是否正确,如果不正确,执行刷新验证码的方法(不一定要想到去模拟点击) |
29
xifangczy 2015-08-26 16:12:13 +08:00 via Android
模拟点击。。和不刷新有什么区别.. 禁止 JS 后不一样没效果。。又多一个短信轰炸接口。
|