如何限制用户提交表单两次
How to restrict user from submitting the form twice?
我有一个asp.net表单,它允许用户提交一个注册表单,该表单使用web服务在SharePoint列表中内部发送/存储所有这些值,因此在提交页面处理时间比正常表单稍长。
在页面重定向到感谢页面之前的平均时间,用户倾向于再次点击提交按钮,这导致多次提交同一记录。
请建议一种方法来限制这个提交,在按钮上点击我使用jquery函数进行数据验证,我已经尝试使用btn。Disable = true方法,但是一旦它到达else块(通过验证后,这是Disable = true代码所在的地方),它不会在阅读btn后提交表单。Disable = true语句
专家们,请给我指路。
提前感谢。
参见Nathan Long的插件:https://stackoverflow.com/a/4473801/1414562
{修改为允许在输入更改时重新提交表单}
// jQuery plugin to prevent double submission of forms
jQuery.fn.preventDoubleSubmission = function() {
var $form = $(this);
$form.on('submit',function(e){ //on here instead of bind
if ($form.data('submitted') === true) {
// Previously submitted - don't submit again
e.preventDefault();
} else {
// Mark it so that the next submit can be ignored
$form.data('submitted', true);
}
}).find('input').on('change',function(){
$form.data('submitted',false);
});
// Keep chainability
return this;
};
像这样使用:
$('form').preventDoubleSubmission();
正如您所发现的,如果禁用onclick处理程序中的按钮,它将不会向服务器发送请求。解决这个问题的简单"技巧"是,而不是立即禁用按钮,使用setTimeout
来安排一个功能运行,例如,5毫秒将禁用按钮;这将允许在按钮被禁用之前将请求发送到服务器,同时不会留下足够的时间让用户实际单击它两次。
两种方法
使用Jquery或c#
Jquery $("#btnSubmit").live("click",(function(e) {
this.disabled = true;
/Do Something /
this.disabled = false;
return false;}));
c# protected void btnSubmitClick(object sender, EventArgs e)
{
btnSubmit.Enabled = false;
/Do Something/
btnSubmit.Enabled = true;
}
希望有帮助
多谢安娜
相关文章:
- 在servlet中提交两个表单
- 我如何让我的脚本连续提交两个表单
- 在一次点击中发布到两个表单 JavaScript
- 一次点击,两次'单击'事件已启动
- 只需一个按钮即可在页面上提交两个表单
- HTML5两个表单将分别打印出来
- 使用jQuery组合两个表单输入值
- 两个表单,一个选择/下拉框-需要将选择值从一个表单复制到另一个表单
- 我怎么能只提交两个表单元素
- 收听在同一页面上使用两个表单提交事件
- 两个表单 - 一个提交按钮
- 如何使用一个带有 rails 和 javascript 的提交按钮提交两个表单
- 重置选择的一次表单的操作侦听器
- Angularjs 两个表单用于同一个控制器
- Rails/General HTML:如何从两个表单提交内容
- 如何使用一个 JavaScript 函数管理两个表单
- 尝试在 Bootstrap 中将两个表单并排放置.任何想法如何
- 在php中提交两次表单
- 通过ajax POST提交两次表单
- 验证插件一次处理两个表单,错误