我有一个登录表单,当用户注销时,它出现在我所有页面的顶部。我当前的jQuery/javascript代码在Firefox 3中工作,但不在IE 7中。代码根据登录是否成功,查询返回字符串“true”或“false”的页面。在我的$ .ready()函数调用中,我有以下...
$('#login_form').submit(function() {
var email = $('input#login_email').val();
var pw = $('input#login_password').val()
$.get('/user/login.php', { login_email: email, login_password: pw }, function(data) {
alert('get succeeded');
if(data == 'true') {
$('#login_error').hide();
window.location = '/user/home.php';
alert('true');
}
else {
$('#login_error').show();
alert('false');
}
});
alert('called');
return false;
});
在FF中,我成功地转移到了预期的页面。然而,在IE浏览器中,下面的警报“被调用”而没有其他的东西。当我刷新页面时,我可以看到我已登录,因此$ .get调用显然正在进行,但回调函数看起来并不像它被调用的那样(即“get successful”不会弹出)。我也似乎没有得到任何JavaScript错误消息。
为什么不在IE中工作?
感谢
编辑:由于几个人问,每当我在回调函数输入正确的电子邮件/密码或不正确的一个,没有任何反应。如果我在输入正确的页面后手动刷新页面,则我已登录。否则,我不是。
编辑2:如果我提醒了在回调函数没有data
发生在IE(我没有得到一个警报弹出)。在FF中,它提示true
有效的电子邮件/ pw组合和false
无效的组合。我正在使用jQuery 1.3.2。
编辑3:好吧,伙计们,我尝试了R. Bemrose的事情,并且我在返回的数据中收到了一个“parseerror”。我只是在其他PHP脚本中回显'true'或'false'。我也尝试了'是'和'不',但仍然给我一个解析错误。此外,除了FF之外,这也适用于Chrome。
是你的代码被压缩了吗?这可能不是问题,但是你在这行的最后一行缺少一个分号:var pw = $('input#login_password')。val(),如果你的代码在到达客户端之前被缩小,也许IE的解析器无法理解事物,但FF正在这样做。 – 2009-05-04 20:33:50
不,不做压缩。添加分号没有区别。 – Wickethewok 2009-05-04 20:39:15
电子邮件和密码是否有效? – 2009-05-04 20:50:38