【发布时间】:2013-03-08 21:53:28
【问题描述】:
我正在尝试在表单提交之前验证用户的互联网连接,以便我的 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;
}
}
});
我收到第三种错误的警报,但表单仍然提交。我猜这个错误覆盖了我试图指定同步检查的事实,并且 JavaScript 验证器在 AJAX 可以返回 false 之前完成。
有什么好的办法吗?更好的方法?
谢谢!
【问题讨论】:
-
如果他们没有 Internet 连接,他们首先如何访问您的表单?
-
你在
ret_text收到了什么? -
@j08691:可以剪掉。我收到了一位用户的投诉,称他在尝试提交时由于网络不稳定而丢失了数据,这似乎是对长表单的合理担忧
-
@EmCo: internet_test.php 只是