我试图在Jquery中调用链函数。我在Jquery提交函数中使用$ .ajax从login.php获取值,我试图调用fadeOut函数来关闭登录表单。如果登录成功表单将关闭,那么将有一些成功消息,然后它将关闭。如果错误,那么表格将保留,也是错误信息。 我做了它,但在我的login.js中,当我调用$('。loginform')。fadeOut(1000)它也适用于登录成功与否。
jQuery('#login').live('submit',function(event) {
$.ajax({
url: 'lib/login.php',
type: 'POST',
dataType: 'json',
data: $('#login').serialize(),
success: function( data ) {
for(var id in data) {
jQuery('.' + id).html(data[id]);
}
$('.loginform').hide(1000);
}
});
return false;
}
});
和我的login.php文件包含
if(result==1){
$arr = array ( "loginOK" => "Success." );
} else {
$arr = array ( "errors" => "Please try again ." );
}
echo json_encode( $arr );
这是index.html
<!--Login Form tag -->
<div class='errors'></div>
<div class='loginOK'></div>
<div class='loginform'>
<form action ="" method="post" id="login">
<fieldset class="loginfield">
<legend>Login</legend>
<div>
<label for="username">User Name</label> <input type="text" id="username" name="username">
</div>
<div>
<label for="password">Password</label> <input type="password" id="password" name="password">
</div>
</fieldset>
<button type="submit" id="submit-go" ></button>
<a href="#?w=500" rel="popup_name" class="poplight">Sing up</a>
</form>
</div>
答案 0 :(得分:2)
success: function( data ) {
处理程序在请求成功时执行,而不是在登录成功时执行。您需要在json
中提供一个标记来指示,并在您的处理程序中检查该标记:
success: function( data ) {
if(data.success) {
for(var id in data) {
jQuery('.' + id).html(data[id]);
}
$('.loginform').hide(1000);
} else {
alert('Error logging in');
}
}
修改强>
您当前的json对象就像
{
id_1:'html_1',
id_2:'html_2'
}
你应该像
那样{
html: {
id_1: 'html_1',
id_2: 'html_2'
},
success: $login_success
}