1
我有一個用於移動用戶的網站,用於檢查每個POST請求的連接情況。如果沒有互聯網連接,我會提示用戶輸入錯誤信息。另外,我希望有一個過渡效果,表明表單正在提交。如何防止瀏覽器重試POST請求失敗(並檢查Internet連接)?
我有以下代碼:
var progress = 0;
$('div').on('submit', 'form', function (e) {
var thisform = this;
if (progress === 1) {
// check internet connection
var connection = hostReachable();
if (!connection) {
alert('No connection');
setTimeout(function() { // re-allow submission after 8000 ms (not immediately to avoid browser retry)
progress = 0;
}, 8000);
return false;
}
return true;
}
e.preventDefault();
e.stopPropagation();
if (progress === 0) { // first submit
// updated progress value
progress = 1;
//form transition
$('.spinner').show('fast', function() {
$('.pagecontent').fadeOut('fast');
thisform.submit();
});
} else {
// prevent submit retries when no connectivity
return false;
}
});
其中hostReachable()
是用於使用XHR請求檢查連通性的功能。
現在的問題是thisform.submit();
之後表單提交事件似乎沒有再次觸發。因此if (progress === 1)
內的代碼永遠不會運行。
我的代碼有什麼問題?謝謝!
在轉換過程中您所提交的表單。我不確定你期望從你的代碼中得到什麼。 – Octopus 2015-04-01 05:09:04