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