Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使.Submit()返回false,Submit按钮也会刷新页面_Javascript_Jquery - Fatal编程技术网

Javascript 即使.Submit()返回false,Submit按钮也会刷新页面

Javascript 即使.Submit()返回false,Submit按钮也会刷新页面,javascript,jquery,Javascript,Jquery,我正在制作一个不需要刷新页面的论坛。它进展顺利,除了登录失败后,页面会重新加载 我做了所有的谷歌搜索,发现我的jQuery在.submit事件上的“return false”应该会阻止重新加载,但事实并非如此!代码如下: HTML: Javascript/JQuery: //saves all userdata of current session to the user object. function saveuserdata() { var session_user_data =

我正在制作一个不需要刷新页面的论坛。它进展顺利,除了登录失败后,页面会重新加载

我做了所有的谷歌搜索,发现我的jQuery在.submit事件上的“return false”应该会阻止重新加载,但事实并非如此!代码如下:

HTML:

Javascript/JQuery:

//saves all userdata of current session to the user object.
function saveuserdata() {
    var session_user_data = JSON.parse(get_data("#sidebar", "php/sqlquery.php", "session_user_data"));
    user.username=session_user_data[0];
    user.password=session_user_data[1];
    var session_user_data2=JSON.parse(get_data("#sidebar", 'php/sqlquery.php', 'Userdata', user.username));
    user.picture=session_user_data2[0]['Picture'];
    user.posts=session_user_data2[0]['Posts'];

//reprints the login form, supposedly adding whatever html to the end I want for error support
function loginform(extrastring) {
    var loginform = "<p>Login</p><form id='login'><input class='logininfotext' type='text' id='login_username' placeholder='username'/></br>";
    loginform += "<input class='logininfotext' type='password' id='login_password' placeholder='password'/></br><input id='loginbutton' type='submit' value='login'></form>";
    if (typeof(extrastring)=='string') {
    loginform += extrastring;
    }
    $("#sidebar").html(loginform);
}

$('#sidebar').submit(function() {
    var test=true //normally, this would be a call to php to check if the user logged in successfully or not.  I know my php is working, but my problem is I don't want the page reloading
    user.username=$('#login_username').val();
    user.password=$('#login_password').val();
    if (test=true) {
        saveuserdata();
        $("#sidebar").html("<p class='username'>"+user.username+"</p><img width='125px' height='125px' src='"+user.picture+"'/><p>Posts: "+user.posts+"</td><div id='logout'>logout</div>");
    } else {
        loginform("<p class='error'>Username or Password incorrect!</p>");
    }
    return false;
});
//将当前会话的所有用户数据保存到用户对象。
函数saveuserdata(){
var session_user_data=JSON.parse(获取_数据(“侧栏”、“php/sqlquery.php”、“session_用户_数据”);
user.username=会话\用户\数据[0];
user.password=会话\用户\数据[1];
var session_user_data2=JSON.parse(获取_数据(“#边栏“,'php/sqlquery.php','Userdata',user.username));
user.picture=session_user_data2[0]['picture'];
user.posts=session_user_data2[0]['posts'];
//重新打印登录表单,假定在末尾添加我想要的任何html以支持错误
函数loginform(外部字符串){
var loginform=“Login


”; loginform+=“
”; if(typeof(extrastring)='string'){ loginform+=外部字符串; } $(“#边栏”).html(loginform); } $('#侧边栏')。提交(函数(){ var test=true//通常,这将是对php的调用,以检查用户是否成功登录。我知道我的php正在工作,但我的问题是我不想重新加载页面 user.username=$('#login_username').val(); user.password=$('#login_password').val(); 如果(测试=真){ saveuserdata(); $(“#侧栏”).html(“

”+user.username+”

Posts:“+user.Posts+”注销”); }否则{ 登录信息(“

用户名或密码不正确!

”; } 返回false; });

非常感谢您的帮助。我意识到很难弄清楚这里到底发生了什么。如果您想了解全部情况,请便:

试试看

$('#sidebar').submit(function(e) {
    e.preventDefault();
    var test=true //normally, this would be a call to php to check if the user logged in successfully or not.  I know my php is working, but my problem is I don't want the page reloading
    user.username=$('#login_username').val();
    user.password=$('#login_password').val();
    if (test=true) {
        saveuserdata();
        $("#sidebar").html("<p class='username'>"+user.username+"</p><img width='125px' height='125px' src='"+user.picture+"'/><p>Posts: "+user.posts+"</td><div id='logout'>logout</div>");
    } else {
        loginform("<p class='error'>Username or Password incorrect!</p>");
    }
});
$('#边栏')。提交(函数(e){
e、 预防默认值();
var test=true//通常,这将是对php的调用,以检查用户是否成功登录。我知道我的php正在工作,但我的问题是我不想重新加载页面
user.username=$('#login_username').val();
user.password=$('#login_password').val();
如果(测试=真){
saveuserdata();
$(“#侧栏”).html(“

”+user.username+”

Posts:“+user.Posts+”注销”); }否则{ 登录信息(“

用户名或密码不正确!

”; } });
改用preventDefault

$('#sidebar').submit(function(e) {
    e.preventDefault();
    var test=true //normally, this would be a call to php to check if the user logged in successfully or not.  I know my php is working, but my problem is I don't want the page reloading
    user.username=$('#login_username').val();
    user.password=$('#login_password').val();
    if (test=true) {
        saveuserdata();
        $("#sidebar").html("<p class='username'>"+user.username+"</p><img width='125px' height='125px' src='"+user.picture+"'/><p>Posts: "+user.posts+"</td><div id='logout'>logout</div>");
    } else {
        loginform("<p class='error'>Username or Password incorrect!</p>");
    }
});
$('#边栏')。提交(函数(e){
e、 预防默认值();
var test=true//通常,这将是对php的调用,以检查用户是否成功登录。我知道我的php正在工作,但我的问题是我不想重新加载页面
user.username=$('#login_username').val();
user.password=$('#login_password').val();
如果(测试=真){
saveuserdata();
$(“#侧栏”).html(“

”+user.username+”

Posts:“+user.Posts+”注销”); }否则{ 登录信息(“

用户名或密码不正确!

”; } });
您链接的站点的javascript与您在此提交的代码不同。尝试在submit Handler中解析JSON时出现parseError if()语句中存在错误。您的布尔比较应该是
if(test==true)
。使用单个=符号是赋值运算符或链接的站点的javascript与此处提交的代码不同。尝试解析submit Handler中的JSON时出现parseError if()语句中存在错误。布尔比较应为
if(test==true)
。使用单=符号是赋值运算符或将在5分钟内完成,itI将在5分钟内完成计时器,itI将在5分钟内完成计时器
$('#sidebar').submit(function(e) {
    e.preventDefault();
    var test=true //normally, this would be a call to php to check if the user logged in successfully or not.  I know my php is working, but my problem is I don't want the page reloading
    user.username=$('#login_username').val();
    user.password=$('#login_password').val();
    if (test=true) {
        saveuserdata();
        $("#sidebar").html("<p class='username'>"+user.username+"</p><img width='125px' height='125px' src='"+user.picture+"'/><p>Posts: "+user.posts+"</td><div id='logout'>logout</div>");
    } else {
        loginform("<p class='error'>Username or Password incorrect!</p>");
    }
});