我正在尝试使我的jQuery能够处理CSS动画/类更改,并为此登录论坛处理ajax帖子。我在重新整理JQuery动画脚本和合并用户名和密码的Ajax端口时遇到麻烦。它似乎没有发布登录信息。
<form class="login" action="" method="post" autocomplete="false">
<div class="group">
<input id="user" type="username" name="user" class="input" placeholder="Username" required autofocus>
</div>
<div class="group">
<input id="password" type="password" name="password" class="input" data-type="password" placeholder="Password" required>
</div>
<div class="group">
<button>
<i class="spinner"></i>
<span class="state">Log in</span>
</button>
</div>
<div class="hr"></div>
</form>
这是jQuery
var working = false;
$('.login').on('submit', function(e) {
e.preventDefault();
if (working) return;
working = true;
var $this = $(this),
$state = $this.find('button > .state');
$this.addClass('loading');
$state.html('Authenticating');
$.ajax({
type: "POST",
data: $(this).serialize(),
cache: false,
url: "login.php",
success: function(data) {
if (data.status == 'success') {
this.addClass('ok');
$state.html('Welcome back!');
setTimeout(function() {
window.location = "/index.php"
}, 4000);
} else if (data.status == 'error') {
setTimeout(function() {
$state.html('Log in');
$this.removeClass('ok loading');
}, 3000);
}
},
});
});
答案 0 :(得分:0)
在使用了Diego的建议并将管道输出到控制台日志之后,我能够确定php函数未返回任何内容。添加回显以及相应的结果解决了我的问题,并在if语句中使用了“数据”而不是“ data.status”。