我正在尝试在表单提交之前验证用户的互联网连接,以便我的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之前完成。
这有什么好方法吗?更好的方法吗?
谢谢!
答案 0 :(得分:2)
我会这样:
这只是一个草稿,一切都可以变得更加用户友好,对于非js浏览器来说更加健壮等。