CI避免客户多次点击后反复发同样邮件
用远端smtp发邮件,有时连接到远程服务器会慢,但客户会不断点提交形成发出同样邮件N封,有什么办法避免别人反复点提交吗?另外表格内有验证输入的内容本帖最后由 jeongee 于 2011-6-17 15:58 编辑
用ajax吧,提交完了把表单隐藏,然后给个发送中...,然后成功就提示成功,并把表单remove掉,失败了就显示失败,在把表单显示出来,重新发送 更简单的一个方法就是js,点击submit后把submit的属性改成disable 本帖最后由 smartweb 于 2011-6-17 16:14 编辑
不能加,我还要验证输入的字段,例如姓名,地址不能为空,email必须是有效的。感觉AJax也不太现实。人家是在发邮件的过程中,连到远程服务器有时慢,在中间时段,别人狂点。我加了captcha有所好转了,但狂点后发送完成是只发一次,但仍停留在原页面说验证码错。
你不就是个邮件发送页面麽,提交控制器验证表单,通过就发送跳转成功页面,失败返回发送页面修改,是这样么? 发送邮件时在同样的页面验证数据,有错误就在当前页面即时显示出来,没错误就发送。发送完成就调用另一个view显示成功发送,并不是转向。
重点是:在发送过程中有时间间隔,就是怕别人在这个间隔中狂点。 你的验证是在当前页面用js验证还是在控制器里用form_validation验证
不管是那种,都可以用js控制你表单的submit的disable属性来达到你的要求啊. 我全部用form_validation验证
请写上submit disable给我参考一下。谢谢 <script>
function onsub(){
$('#sub').attr("disabled",true); ;
}
</script>
<input id="sub" type="submit" onclick="onsub()" value="test" />
如果验证不通过返回这个页面的时候 submit按钮还是会变成可以点击的,因为你页面已经重载了 使用ajax会影响到表单验证吗?我觉得不会啊
页:
[1]
2