我正在尝试在表单提交之前验证用户的Internet连接,以便我的
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之前完成.
这有什么好办法吗?更好的方法吗?
谢谢!
最佳答案 我会这样走:
>将“提交”更改为“按钮”(或链接) – 它将停止提交表单.
>单击此按钮进行AJAX调用,如果一切正常,则make form.submit();
这只是一个草稿,一切都可以变得更加用户友好,更耐用于no-js浏览器等.