1.通过表单隐藏域中存放session
表单隐藏域中存放session(表单被请求时生成的标记)。采用此方法在接收表单数据后,检查此标志值是否存在,先进行删除,然后处理数据; 若不存在,说明已提交过,忽略本次提交。方法如下:
//服务端生成随机数存入session, 分配至表单页
$data['sess_id'] = $_SESSION['sid'] = mt_rand(1000, 9999);
$this->load->view('form', $data);
//表单页隐藏域存放此session值
<input type="hidden" name="sid" value="<?=$sess_id; ?>">
//处理
if($_POST['sid'] != '' && $_POST['sid'] == $_SESSION['sid'])
{
unset($_SESSION['sid']);
echo '处理数据';
}
else
{
echo '已提交过表单';
}
2.通过js点击事件处理按钮
当用户单击“提交”按钮后,该按钮将变为灰色不可用状态
上面的例子中使用OnClick事件检测用户的提交状态,如果单击了“提交”按钮,该按钮立即置为失效状态,用户不能单击按钮再次提交。
还有一个方法,也是利用JavaScript的功能,但是使用的是OnSubmit()方法,如果已经提交过一次表单,将立即弹出对话框,代码如下:
<script language="javascript">
var submitcount=0;
function submitOnce (form){
if (submitcount == 0){
submitcount++;
return true;
} else{
alert("正在操作,请不要重复提交,谢谢!");
return false;
}
}
</script>
<form name="the_form" method="post" action="" onSubmit="return submitOnce(this)">
<input name="text" type="text" id="text" />
<input name="cont" value="提交" type="submit">
</form>
在上例中,如果用户已经单击“提交”按钮,该脚本会自动记录当前的状态,并将submitcount变量自加1,当用户试图再次提交时,脚本判断submitcount变量值非零,提示用户已经提交,从而避免重复提交表单。

转载于:https://www.cnblogs.com/GreenForestQuan/p/6069773.html

防止重复提交表单的两种方法相关推荐

  1. java mvc中重复提交表单,spring mvc 防止重复提交表单的两种方法,推荐第二种

    第一种方法:判断session中保存的token 比较麻烦,每次在提交表单时都必须传入上次的token.而且当一个页面使用ajax时,多个表单提交就会有问题. 注解Token代码: package c ...

  2. Js提交表单的两种方法

    提交表单一般有两种一种是submit按钮,一种是调用form的submit方法.虽然都是提交表单,但这两种还是有些差别的. 一般来说,提交form表单的时候需要做一些简单的验证,验证完后才能提交,避免 ...

  3. php文本框自动补全,PHP自动补全表单的两种方法

    效果图: 第一种:从数据库中检索之后补全 第二种:邮箱等纯前端的补全 先说第二种,使用开源的插件,所以相对简单. github上面的项目 completer. https://github.com/f ...

  4. js表单提交 php,JavaScript提交表单的几种方法

    在我们工作中我们会经常使用到form表单,相信大家再熟悉不过了,那么提交表单有很多种方法,JavaScript提交表单的方法又是如何呢,今天就带大家介绍下JavaScript提交表单的几种方法! 第一 ...

  5. mvc ajax提交html标签,Mvc提交表单的四种方法全程详解

    Mvc提交表单的四种方法全程详解 2019-01-05 编程之家 https://www.jb51.cc 编程之家收集整理的这篇文章主要介绍了Mvc提交表单的四种方法全程详解,编程之家小编觉得挺不错的 ...

  6. 使用js提交form表单的两种方法

    提交form表单的时候瑶族一些简单的验证,验证完后才能提交,避免无效提交. 1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在前端页面写:有两种方法,一种是用sub ...

  7. js提交form表单的两种方法

    当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在前端页面写:有两种方法,一种是用submit提交.一种是用button提交. 方法一: 在jsp的前端页面的头部插入一 ...

  8. html表单调用js方法,使用js提交form表单的两种方法

    提交form表单的时候瑶族一些简单的验证,验证完后才能提交,避免无效提交. 1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在前端页面写:有两种方法,一种是用sub ...

  9. CGI提交表单的两种方式POST与GET

    Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP ...

  10. 利用JS提交表单的几种方法和验证

    工作中发现表单提交方便的问题,很多时候IE下提交好好的,打了火狐下就出现了问题,利用提交按钮就不成功了,于是利用JS的方式就成功了,也不知道为什么.在导师的催促下就总结出以下的几种常用表单提交的方法. ...

最新文章

  1. 微信小程序开源项目库汇总-持续更新
  2. AI科普微视频丨深度学习如何帮助自动驾驶
  3. 大话数据结构 java源代码_大话数据结构(八)Java程序——双向链表的实现
  4. Exchannge 2013数据库副本频繁自动切换
  5. 大型网站后台架构的演变
  6. UILocalNotification详解
  7. [TJOI2011] 卡片(网络流 + 质因子优化建图)
  8. 转:Some interesting facts about SharePoint 2007 Search
  9. JAVA中两个char类型相加_1、JAVA中的几种基本类型,各占用多少字节?
  10. java--jdk安装教程
  11. 从程序员到项目经理(17):你不是一个人在战斗--思维一换天地宽【转载】
  12. 通用新能源电动车动力电池包详细结构三维3D数模据图纸模型,格式3dxml
  13. 数电课设——基于74系列芯片搭建的交通灯控制系统电路
  14. HP台式计算机不能启动,惠普电脑不能启动怎么处理
  15. 数据库与身份认证(学习笔记)
  16. 获取硬盘的smart信息
  17. 国际学校入学考试MAP语法测试题真题讲解
  18. 银行理财子与券商合作探讨(一):银行理财子带给资本市场的机遇与挑战
  19. 大家在人生低谷时有多惨,怎么熬过来的
  20. 现在的亚马逊收款账户怎么开?容易开吗?有谁了解过?

热门文章

  1. Kubernetes 小白学习笔记(14)--k8s集群路线-kubernetes核心组件详解
  2. FISCO BCOS Solidity 智能合约 返回json对象、字典mapping、结构体
  3. 微信小程序云开发教程-分页查询
  4. mysql新手创建数据库_用MySQL创建数据库和数据库表(新手必看)
  5. Python语法学习第三天--元组
  6. 正则表达式在java中的用法
  7. LayaAir 对象池 laya.utils.Pool
  8. MongoDB 主从复制(主从集群 )
  9. 移动端页面开发资源总结
  10. 阶段3 2.Spring_10.Spring中事务控制_8 spring基于纯注解的声明式事务控制