js防止表单重复提交实现代码

2020-03-29 16:00:32来源:爱站网 阅读 ()

新老客户大回馈,云服务器低至5折

我们在在客户端处理问题的时候,应该要根据所有可能性的提出相应的解决方案,但在服务器上,我们也只能验证数据真实性,爱站技术频道今天给大家带来了js防止表单重复提交实现代码,一起来学习吧!


<script Language='JavaScript'>
function formsubmit() {
Today = new Date();
var NowHour = Today.getHours();
var NowMinute = Today.getMinutes();
var NowSecond = Today.getSeconds();
var mysec = (NowHour*3600)+(NowMinute*60)+NowSecond;
if((mysec-document.formsubmitf.mypretime.value)>600){
//600只是一个时间值,就是5分钟内禁止重复提交,值随便设
document.formsubmitf.mypretime.value=mysec;
}
else{
alert(' 按一次就够了,请勿重复提交!请耐心等待!谢谢合作!');
return false;
}
document.forms.formsubmitf.submit();
}
</script>


防止网页后退–禁止缓存
通过控制浏览器的缓存及页面的有效期,当在重定向之后的新页面上点击浏览器后退按钮时,会提示”网页已过期”,从而防止后退时导致表单被提交。但这种方式不是对所有浏览器都是有效的,所以要考虑后再使用。在response时在header中添加如下代码来控制浏览器的缓存及网页的有效期限或直接在网页的<meta>中添加:

?

?

?


<?php
//.....
///在IE 4或5中,Cache-Control标记将被忽略,不起作用
header('Cache-Control: no-cache');
header('Expires: 0');
//对于https有效,与“Expires: -1”相同,此时浏览器仍旧缓存页面,但把页面标记为立即过期
header('Pragma:no-cache');
//....
?>


action有这样的一个方法生成令牌

?

?

?


protected String generateToken(HttpServletRequest request) {
HttpSession session = request.getSession();
try {
byte id[] = session.getId().getBytes();
byte now[] =
new Long(System.currentTimeMillis()).toString().getBytes();
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(id);
md.update(now);
return (toHex(md.digest()));
} catch (IllegalStateException e) {
return (null);
} catch (NoSuchAlgorithmException e) {
return (null);
}
}


asp来做实例
表单文件formtest.asp

?

?

?


<%
  Randomize '初始代随机数种子
  num1=rnd() '产生随机数num1
  num1=int(26*num1)+65 '修改num1的范围以使其是A-Z范围的Ascii码,以防表单名出错
  session("antry")="test"&chr(num1) '产生随机字符串
%>
<form name="test" action="testact.asp" method="post">
你的名字:<input type='text' name='' size=30>  '注意本行中使用了随机表单项名
<input type='submit' value='提交'>
</form>


表单处理程序testact.asp

?

?

?


<%
  teststr=request.form(session("antry"))
  if teststr="" then
   response.write "没有填写姓名或重复提交"
   '由于用户没有填写名字,或表单被重复提交(标志为session("antry")为空)引起
  else
   response.write teststr
   session("antry")=""  '提交成功,清空session("antry"),以防重复提交!!
  end if
%>

上面是爱站技术频道介绍的js防止表单重复提交实现代码,其实我们只要履行必要项目的样式和名称就行,不必实行全部的格式项目。


原文链接:https://js.aizhan.com/develop/JavaScript/12402.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Jquery插件写法笔记整理

下一篇:javascript面向对象入门基础详细介绍