1

これを理解するのにおそらく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 に答える