Ajax事件只工作一次
Ajax event only working once
当我输入错误的详细信息并运行它时,它会弹出错误消息,但如果我输入正确的详细信息,然后单击再次运行它。登录按钮更改为"正在连接…",但没有发生任何其他事情
$(document).ready(function() {
var width = ( $(".main").width() - 5);
if (width < 300) {
$(".logo-img").css({"width":width});
};
$("#error").hide();
$(function() {
$('#login').on('click', function(e){
e.preventDefault();
var token = $('#token').val();
var username = $('#username').val();
var password = $('#password').val();
var remember = $('#remember:checked').val();
$.ajax({
url: 'core/functions/ajaxLogin.php',
method: 'POST',
data: { 'username' : username,
'password' : password,
'remember' : remember,
'token' : token },
dataType: 'html',
cache: false,
beforeSend: function() { $('#login').val('Connecting...') },
success: function( data ) {
if (data == 'success') {
setTimeout( "window.location.href='backorderbook';", 500 );
} else if( data == 'userorpass' ) {
$('#error').fadeIn();
$('#error_message')
.html('username or password were entered incorrectly');
$('#error').delay(3500).fadeOut();
$('#login').val('Sign In');
};
}
});
});
});
});
工作一次的原因。
当您的ajax启动时,首先要做的就是显示连接。。然后当你得到data
的回复时,你的声明说
if data == success //redirects
elseif data == userpass //show you have invalid username/password and clear html
那么,如果你的数据不成功呢/userpass
它只会运行您的ajax beforeSend()
,而不会删除您似乎只运行过一次的连接。
我建议您的数据应该是一个对象,并检查上面的消息是否有错误,简而言之,将其放在后端,只需jquery显示消息
当加载登录页面并使用Ajax发送时,会生成一个令牌。但是我的PHP令牌系统不喜欢同一个令牌被反复发送并阻止请求。
使用Fiddler运行函数。。和/或将错误参数添加到ajax。。。很可能你的网络请求没有成功。
相关文章:
- 主干模型更改事件只触发一次
- 如何检测滚动事件是否像在触摸设备上一样只触发一次
- 在单击事件中,第一次单击时激发代码一次,其余代码在所有单击时运行
- 简单的onclick事件只起过一次作用
- 一次点击,两次'单击'事件已启动
- Javascript事件发射器一次处理多个事件
- jQuery单击事件在一次之后不会触发
- JQuery只检查了一次事件工作
- 只为构造函数的所有实例触发一次事件侦听器
- 如何只调用一次事件处理程序,而不是每次单击项目时调用事件处理程序
- 在鼠标悬停时添加事件,如何只添加一次事件
- 每 60 秒仅启动一次事件 (JavaScript)
- 主干分组依据集合仅在一次事件单击后呈现
- 在没有jquery的情况下只执行一次事件侦听器函数
- 如何在Javascript中只执行一次事件处理程序
- jquery只在静态和动态元素上触发一次事件
- 在获得一次事件后删除ng单击事件
- HTML5 -视频播放时每隔几秒触发一次事件
- 为多个控件注册一次事件处理程序-是否可能
- 只运行一次事件