2013-07-19 102 views
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,所以如果任何人有任何建議,使其更加「標準」,任何提示都表示讚賞!

+3

請注意,您拼錯了'passowrd',並且對象文字可能不包含相同的屬性名稱兩次。 – Bergi

+0

你在哪一行發生了這個錯誤? – Bergi

+1

使用JavaScript調試器(通過瀏覽器的開發工具)找出錯誤發生的位置。根據錯誤消息,它似乎缺少三個元素之一,但給了你的HTML,他們都在那裏。所以你肯定需要調試器來幫助你。 –

回答

6

此行

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

取代您<div>的內容。您刪除表單和所有輸入元素...

+0

Duh ...非常感謝。我知道這對我來說是一個愚蠢的錯誤。我無法找到它。非常感謝! – alexander7567

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); 
     } 
    }); 
} 
+0

謝謝,這是未來的問題,但不是解決此問題的方法。我得到了錯誤信息「console.log(document.getElementById(」login_username「).value);」 – alexander7567

+0

清理它多一點。看看這是否有幫助 – DevlshOne

+0

謝謝,我用了一點這個清理我的代碼,現在我得到它的工作。 – alexander7567