html怎么防止表单重复提交表单,8.10 防止表单重复提交

8.10 防止表单重复提交

οnclick="this.disabled = true;"/>

特别是在脚本需要很长时间分析表单数据时,用户很可能会再次提交表单来尝试加快速度。然而,在网上购物、信用卡支付和其他重要的交易中,可能涉及大笔资金。因此,网页本身应当努力避免表单被重复提交。

上面的代码(在本主题相关的下载文件prevent.html里)就是这样实现的:在单击了提交按钮后,按钮的disabled属性被设置为true,使得按钮不能再被点击(当JavaScript启用时)。图8-5展示了浏览器中的结果:按钮变灰。

fa035c6267868246c1c2543d37aabb36.png

(点击查看大图)图8-5 按钮不能被点击两次

上面的代码和代码清单8-10都是提交表单数据到名为delay.php的PHP脚本,它在等待5秒后才发送数据。这样做考虑到了网络连接缓慢或服务器缓慢的情况。这是本节语句的主要用意。

还有一种方法是通过维护按钮状态,判断是否单击了按钮,如代码清单8-10所示。

代码清单8-10 通过维护状态变量来防止表单被重复提交(prevent- status.html)

varsubmitted =false;

functioncheckform(f) {

if(submitted) {

window.alert("Form has already been

?submitted!");

returnfalse;

}else{

submitted =true;

returntrue;

}

}

οnsubmit="return checkform(this);">

警告 尽管这个语句非常方便,你需要意识到有时服务器会在没有预兆的情况下关闭到客户端的连接(反之亦然)。然后数据传输就中止了,但JavaScript代码无法得知这些。其结果是按钮不能被点击两次(如预期的那样),却未能有效地发送数据。这样用户就需要重新载入表单来重新提交数据。

【责任编辑:云霞 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值