Web表单的一个很大问题就是用户在提交表单的时候会很不耐烦。如果点击提交按钮后,表单没有立即消失(或因网速过慢,没有立即跳转到表单处理页面),用户通常会点好多次提交按钮。于是就产生了一个问题,会造成多次重复的请求,更为糟糕的情况是,可能会多次从你的信用卡里扣钱。
如何解决这个问题呢?解决方法十分简单:当用户第一次点击了提交按钮后,立马将其禁用,当用户想再次点击是,用于提交按钮被禁用而变成灰色,自然也就不能进行第二次的重复提交表单。
实现方法:
对于一个普通的表单提交按钮,其html代码为:
- <input type="submit" value="提交表单" />
将其替换成以下代码:
- <input type="submit" value="提交表单"
- onclick="this.disabled=true;this.form.submit()" />
当用户点击提交按钮时,会做两件事情:
1、this.disabled=true,即将disabled特效设为true来禁用这个按钮;
2、this.form.submit(),提交表单
执行这两件事情是有先后顺序的,先执行第一步,然后执行第二步。
为了使用更为方便,还可以将上述代码封装成一个函数,使用如下:
- <script type="text/javascript">
- function myform(object) {
- object.disabled = true;
- object.form.submit();
- }
- </script>
- <input type="submit" value="提交表单" onclick="myform(this)" />