不管是System还是WEBSITE,不管是数据的增加还是修改都涉及到表单的提交。但是由于宽带的限制,对于页面数据的提交,页面的数据处理总是需要一定的时间。导致有一部分的用户,会重复点击提交按钮。要是不进行特殊的处理的话,会导致相同数据。当然这是我们不想看到的事情。也不是客户想要的。
所以我们不应该let 这事情发生。
方法我觉得应该分为两种:
1.我们可以在服务器端处理这些重复数据,而且这部分处理会增加服务器负担,呵呵,这部分不是我这篇文章讨论的重点。
2.客户端处理:
当然我们应该是用JAVASCRIPT来处理
其实试想一下,不管是用户一次提交,两次提交,N次提交,都是在同一个页面里。因此都是由同一个程序来处理的。
所以我们可以用一个全局变量来处理
<script language='javascript'>
var submit=0;
</script>
var submit=0;
</script>
这个变量会一直在这个页面里。
所以来说我们可以let按钮提交一次,let此变量增加1,这样的话就可以计算出来用户到底提交了几次了,剩下的事情我们就好办了。
要是大于1的话,我们就可以禁止他的提交。
<script language='javascript'>
var submit=0;
function CheckIsRepeat()
{
if (++submit>1)
{
alert('An attempt was made to submit this form more than once; this extra attempt will be ignored.');
return false;
}
return true;
}
</script>
var submit=0;
function CheckIsRepeat()
{
if (++submit>1)
{
alert('An attempt was made to submit this form more than once; this extra attempt will be ignored.');
return false;
}
return true;
}
</script>
测试CODE:
<!---
http://endisoft.cnblogs.com
Power by Endision 2007/4/10
-->
<form action="http://www.xg012.com">
<input type="submit" name="btnSubmit" value="Submit" onclick="javascript:CheckIsRepeat();" language="javascript" id="btnSubmit" class="btn" />
</form>
<script language='javascript'>
var submit=0;
function CheckIsRepeat()
{
if (++submit>1)
{
alert('An attempt was made to submit this form more than once; this extra attempt will be ignored.');
return false;
}
return true;
}
</script>
http://endisoft.cnblogs.com
Power by Endision 2007/4/10
-->
<form action="http://www.xg012.com">
<input type="submit" name="btnSubmit" value="Submit" onclick="javascript:CheckIsRepeat();" language="javascript" id="btnSubmit" class="btn" />
</form>
<script language='javascript'>
var submit=0;
function CheckIsRepeat()
{
if (++submit>1)
{
alert('An attempt was made to submit this form more than once; this extra attempt will be ignored.');
return false;
}
return true;
}
</script>