【发布时间】:2016-11-29 16:35:59
【问题描述】:
我在JS中有一个类,里面包含一系列方法,与登录和用户注册有关。这些方法基本上是捕捉页面的事件并做一些事情。
当它为UsersOperations()创建实例时,它被调用(由于点击事件)$("#login").click(function(){});,被正确执行......直到在调用saveUserInfo();之前,此时页面被重新加载,并且我不知道为什么,我不明白,我有相同的方法,但没有上课,一切都很好。
请帮帮我,否则我会因为这个存在问题而死。
$(document).ready(function(){
new UserOperations();
});
class UserOperations{
constructor() {
if(!this.checkUserWithLogin())
this.addLoginAndRegisterButtons();
var self = this;
$("#Log_In").click(function(){
$.ajax({
type: "GET",
url: "php/request.php",
async: true,
data: {nick_log:$("#username").val(),
pass_log:$("#userpass").val()},
success: function(data){
var dataJson = JSON.parse(data);
if(dataJson==null)
alert("You are not registered");
else {
if($("#Keep_log").is(':checked'))
self.saveUserInfo(dataJson,"localStorage");
else
self.saveUserInfo(dataJson,"sessionStorage");
self.checkUserWithLogin();
},
error: function (obj, error, objError){
alert("There is an error!");
}
});
});
}
}
【问题讨论】:
-
很可能是因为
#login按钮提交了表单? -
但是在那种情况下,ajax函数不会接收到数据(因为它有效地从request.php接收数据)还是没有?不,“#login”按钮不是提交类型。但它在一个表单标签中
-
你怎么知道
success函数被调用了?你怎么知道它在页面重新加载之前执行“直到那个点”? -
因为我成功添加了一些
alerts...许多alerts,并且直到那时才显示消息 -
嗯,这可能意味着此时抛出了异常。你看过你的错误控制台吗? (但这并不能解释为什么页面会重新加载)
标签: javascript ajax oop events