4
我試圖在表單提交前驗證用戶的網絡連接,以便我的JavaScript驗證功能可以拋出警報並在沒有連接時返回false。驗證表單提交前的連接
我已經試過: navigator.onLine - 在FF不工作(只着眼於是否在瀏覽器的 '離線模式')
AJAX請求到自己的網站:
$.ajax({
type: "GET",
url: "internet_test.php",
async: false, //trying to force a response before continuing
timeout:8000,
success: function(ret_text) {
if(ret_text == 'yes') {
return true;
} else {
alert("No Connection 1");
return false;
}
},
error: function(x, t, m) {
if(t==="timeout") {
alert("No Connection 2");
return false;
} else {
alert("No Connection 3"); //this is the one triggered
return false;
}
}
});
我得到第三種錯誤的警報,但是表單仍然提交。我猜這個錯誤覆蓋了我試圖指定一個同步檢查的事實,並且在AJAX返回false之前JavaScript驗證器完成。
有沒有一個很好的解決方法呢?更好的方式來做到這一點?
謝謝!
如果他們沒有互聯網連接,他們會怎麼越來越到您的表單首先? – j08691 2013-03-08 21:55:24
你在'ret_text'中收到了什麼? – EmCo 2013-03-08 21:57:09
@ j08691:它可以切出。我收到了一位用戶的投訴,他在他試圖提交時,他的參差不齊的互聯網出現故障時丟失了他的數據,而且這似乎是一個長期合理的關注 – JSP64 2013-03-08 21:57:55