>假设:
1).我的登录表单有两个字段注册,密码与一个按钮称为登录(提交)
2). 我的后端脚本登录.php很好,没有
错误这是我通过登录表单发送数据并将其与后端进行比较的代码,现在的问题是当我提供登录所需的正确密码和注册时,事件成功完成,但是当我提供错误的凭据时,它没有显示 ajax() 中显示的错误消息错误:函数().虽然当我双击登录按钮时会显示一段时间的消息,然后页面会自动刷新。当为注册
提供错误的密码时,有人帮助我收到错误消息
$(function(){
/*$('#err').hide();*/
$('.err').hide();
/*$('.error').hide();*/
$('#eno').blur(function(){
var eno = $('input#eno').val();
if(eno == ""){
$('#err_eno').show();
$('input#eno').focus();
return false;
}else{
$('#err_eno').hide();
}
});
$('#pw').blur(function(){
var pw = $('input#pw').val();
if(pw == ""){
$('#err_pw').show();
$('input#pw').focus();
return false;
}else{
$('#err_pw').hide();
}
});
$('#submit_btn').click(function(){
var dataString = $('#log').serialize();
//alert (dataString);return false;
$.ajax({
type:"POST",
url:"script/login.php",
data:dataString,
success:function(){
window.location='profile.php';
},
error:function(){
$('#err').html("<p>Provide right combination</p>");
}
});
return false;
});
});
好吧,您的成功函数始终被执行,请尝试使用以下实现:
$.ajax({
type:"POST",
url:"script/login.php",
data:dataString,
success:function(x){
if (x == 1)
{
window.location='profile.php';
}
else
{
//Handle Error Here
$('#err').html("<p>Provide right combination</p>");
}
}
});
登录.php
<?php
//execute code
//if success
print "1";
//else
print "";
?>
The error function in called when a request fails
,在您的情况下,ajax函数执行成功。你要做的是将 ajax 函数的 dataType 属性设置为 json,并将 json 数组作为来自服务器的响应传递。在此处查看更多信息
示例如下:
$.ajax({
type:"POST",
url:"script/login.php",
data:dataString,
dataType:"json",
success:function(data){
if(data.error==true){
$('#err').html("<p>Provide right combination</p>");
}else{
window.location='profile.php';
}
},
error:function(){
}
});
});
您的登录.php
//if success
echo json_encode(array('success'=>TRUE));
//else if password failed
echo json_encode(array('error'=>TRUE));
我希望这是有帮助的。