启用提交按钮,如果表单提交失败
问题描述:
我有下面的代码来禁用窗体已提交防止多次提交一次后提交按钮。启用提交按钮,如果表单提交失败
的问题是,如果下一个页面加载从来没有的东西或与用户连接的情况,按键则保持禁用。
有没有一种方法来检查,如果用户仍处于连接状态,并再次启用按钮,如果提交失败,使用户可以重试提交表单?
这是我的jQuery代码:
$form.on("submit", function() {
var emptyInputs = 0;
// calculate empty inputs
if (emptyInputs === 0) {
var $button = $("#signup button");
$button.prop("disabled", true);
//if (/* connection is lost/offline */) {
// $button.prop("disabled", false);
//}
return true;
}
return false;
});
答
试试这个,
//callback handler for form submit
$form.submit(function(e)
{
var postData = $(this).serializeArray();
var formURL = $(this).attr("action");
$.ajax(
{
url : formURL,
type: "POST",
data : postData,
success:function(data, textStatus, jqXHR)
{
//go to success page
},
error: function(jqXHR, textStatus, errorThrown)
{
// handle fail event your way
$("#signup button").removeAttr("disabled");
}
});
e.preventDefault(); //STOP default action
e.unbind(); //unbind. to stop multiple form submit.
});
答
由于提交按钮触发一个完整的页面请求没有很多可以做,因为没有活动触发重置。如果您提交表单作为ajax请求,您可以在特定超时后中止请求。