等待光标提交 POST 表单



我想在通过提交表单将 excel 提交到数据库时加载光标。功能需要一些时间。我使用 jQuery 来发布:

function SubmitForm(form) {
$('*').css('cursor', 'wait');
$.ajax({
type: "POST",
url: form.action,
data: $(form).serialize(),
success: function (data) {
if (data.success) {
Popup.dialog('close');
location.reload(true);
}
else {
Popup.html(data);
SubmitForm(form);
}
}
});
$('*').css('cursor', 'default');
return false;
};

有人可以指出为什么cursor: wait不起作用吗?

设置cursor: wait工作正常。问题是因为您立即再次设置cursor: default,因为 AJAX 请求是异步的,并且您不会等待它完成。

若要解决此问题,请在complete处理程序中移动重置光标的逻辑:

function SubmitForm(form) {
$('body').css('cursor', 'wait');
$.ajax({
type: "POST",
url: form.action,
data: $(form).serialize(),
success: function(data) {
if (data.success) {
Popup.dialog('close');
location.reload(true);
} else {
Popup.html(data);
SubmitForm(form);
}
},
complete: function() {
$('body').css('cursor', 'default');
}
});
return false;
};

另请注意在选择器中使用body而不是*,因为这的性能要好得多,并且应该完成相同的工作。

最新更新