1

我可能花了一个小时试图弄清楚这一点......无论我尝试什么,我都会不断收到这个错误:

Cannot read property 'value' of null

这是我的 HTML:

<!DOCTYPE html>
<html>
  <head>
    <title>Bootstrap 101 Template</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
  </head>
  <body>
    <h1>Hello, world!</h1>
    <div id="login_box"><form class="form-inline" action="JavaScript: login();" method="post">
  <input type="text" class="input-small" id="login_username" name="username" placeholder="Username">
  <input type="password" class="input-small" id="login_password" name="password" placeholder="Password">
  <label class="checkbox"><input type="checkbox" id="login_autologin" name="autologin"> Remember me  </label>
  <button type="submit" class="btn" name="login">Sign in</button>
</form></div>
    <script src="http://code.jquery.com/jquery.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/overall_js.js"></script>
  </body>
</html>

以及相关的 JS 文件(overall_js.js):

function login() {
$("#login_box").html("logging you in....");
console.log(document.getElementById("login_username").value);
$.post("user.php?mode=login", {
    username : document.getElementById("login_username").value, 
    password : document.getElementById("login_password").value,
    autologin : document.getElementById("login_autologin").value,
}).done(function(data) {
    result = JSON.parse(data);
    if (result.status == 3) {
        $("#login_box").html(
                "Welcome back, " + result.user_row.username + "!");
    } else {
        $("#login_box")
                .html("You was not logged in: , " + result.error_msg);
    }
});
}

谢谢,如果你能解决这个问题!我也是 jQuery 和 JS 的新手,所以如果有人有任何建议让它更“标准”,任何提示都将不胜感激!

4

2 回答 2

6

这条线

$("#login_box").html("logging you in....");

替换你的内容<div>。您删除表单和所有输入元素...

于 2013-07-19T17:00:08.737 回答
1

请参阅下面需要的更正,第 6 行和第 7 行:

function login() {
    $("#login_box").append("logging you in....");
    var u = $('#login_username').val();
    var p = $('#login_password').val();
    var al = $('#login_autologin').is(':checked');
    console.log(u, p, al);
    $.post("user.php?mode=login", {
        username : u, 
        password : p,
        autologin : al,
    }).done(function(data) {
        result = JSON.parse(data);
        if (result.status == 3) {
            $("#login_box").html(
                    "Welcome back, " + result.user_row.username + "!");
        } else {
            $("#login_box")
                    .html("You was not logged in: , " + result.error_msg);
        }
    });
}
于 2013-07-19T16:52:52.633 回答