[英]Disable 'submit' button without javascript
我正在尝试实现某种解决方案,以解决当有一个提交按钮会触发需要花费一些时间才能运行的代码例程的提交按钮时发生的“双重提交”问题。
不幸的是,有大量用户仍在使用旧的Internet浏览器和一些运行无脚本插件。 我无法使用javascript。
单击asp.net中的按钮后,是否可以禁用按钮?
由于您要在用户单击后(并且页面仍在加载时)禁用按钮,因此必须在客户端进行。 JavaScript是您可以用于此的唯一客户端语言。
因此,请确保如果用户禁用了Javascript(如今极不可能),则您的最终页可以处理“两次提交”数据。
简短的故事,不。
在您的情况下,您需要制作一些服务器端代码以检测重复帖子,然后丢弃重复的请求。
您可以在每次单击按钮并将其置于会话后在服务器上启动计时器。 下次点击时,您可以检查计时器并应用或拒绝下次用户点击。
因此,如果没有某种客户端脚本,将不可能禁用该按钮。 如果您假定它将被禁用,那么无论它是哪种客户端脚本,那都是不可能的任务。
您可以做的是确保他们要执行的操作不会在每次页面加载时重复运行。
Lock
块。 lock
块,然后什么也不做,或显示某种错误消息。 lock
块,然后执行操作。 给会话密钥适当的到期时间; 它不必超过几分钟。 您甚至可以在操作结束时删除相关的会话密钥,前提是可以在该位置重复该会话密钥。 在按钮单击事件中,只需编写代码
{
//Some Code
button1.Enabled = false;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.