Html.BeginForm如何避免多个表单提交
Html.BeginForm how to avoid multiple form submission?
我们有以下注册页面的代码
@using (Html.BeginForm(MVC.Account.Register(Model.ReturnUrl), FormMethod.Post, new { @id = "register-form" }))
{
<div class="control-group clear">
@Html.LabelFor(m => m.Email)
@Html.TextBoxFor(m => m.Email, new { type = "email", @class = "forbid-lt-gt" })
<span class="hint raise">Will be user as Username.</span>
<div class="error">@Html.ValidationMessageFor(m => m.Email)</div>
</div>
<div class="control-group clear">
@Html.LabelFor(m => m.Password)
@Html.PasswordFor(m => m.Password)
<span class="hint raise">Length between 6 and 10 characters</span>
<div class="error">@Html.ValidationMessageFor(m => m.Password)</div>
</div>
<div class="control-group clear">
@Html.LabelFor(m => m.ConfirmPassword)
@Html.PasswordFor(m => m.ConfirmPassword)
<div class="error">@Html.ValidationMessageFor(m => m.ConfirmPassword)</div>
</div>
<div class="control-group action">
<button class="btn primary" type="submit">
<span>Sign up</span>
</button>
</div>
<div class="clear"></div>
}
和文件formBlocker.js防止多个按钮点击
$(function() {
$('form').one('submit', function () {
$(this).find('button[type="submit"]').attr('disabled', 'disabled');
});
//Enable submit button if data has changed
$('form').live("input", function () {
$(this).find('button[type="submit"]').removeAttr('disabled');
});
});
通常一切都很好,但有时它不起作用,在用户点击按钮几次后,表单可以多次发送到服务器。早些时候,我们遇到了一个问题,点击IE表单中的提交按钮后,两次被发送到服务器。现在我们没有这个问题,但它没有得到解决。
live
已死亡。死去的它在2.7中被弃用,在2.9中被删除。死了!
我会使用这种方法:
var serializedData;
$(function () {
$('form').submit(function () {
var tempSerializedData = $(this).serialize();
if (tempSerializedData != serializedData)
serializedData = tempSerializedData;
else
return false;
});
});
试试这个不确定,但这对我有效
$('form').one('submit', function () {
$(this).find('button[type="submit"]').attr('disabled', 'disabled');
setTimeout(function () {
$(this).find('button[type="submit"]').attr('disabled', 'disabled');
}, 20);
});
相关文章:
- HTML表单提交时未执行外部函数
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 将图像上传ajax与表单提交ajax相结合
- Javascript无法处理表单提交
- 如何在我的情况下禁用表单提交
- 加载后的页面与ajax表单提交不起作用
- angularjs-控制器在表单提交时未调用
- 禁用带有字符白名单的表单提交
- 如何使用Google Analytics跟踪表单提交
- 使用javascript将表单提交到iframe目标中
- e.preventDefault在表单提交时被忽略
- AngularJS JQuery Ajax表单提交等效
- 用Javascript处理表单提交事件,避免“;Form Processed”;
- 如何避免表单提交后出现不希望的URL地址更改
- Html.BeginForm如何避免多个表单提交
- 在iframe内提交表单时如何避免重定向
- 如何避免或禁用表单提交时,有验证错误使用Jquery验证器
- 如何避免php表单提交中的页面重载
- 使用带有laravel的ajax提交表单时,避免重新加载页面
- 避免不必要的表单提交