2013-03-23 57 views
0

嗯,我知道代碼的作品,因爲我在其他三個頁面上使用它,它工作正常,但我已經移動到使我的網站的移動版本。基本上,代碼用於實時登錄。它序列化用戶數據,顯示「登錄」消息,然後向文件發送ajax請求。該文件的響應內容將替換登錄消息,並根據情況發生不同的事情。我直接從一個工作示例中移植了代碼,現在,儘管代碼有很多更改,但jquery似乎根本沒有觸發。這裏是我的jQuery代碼:爲什麼我的jQuery代碼不工作?

function login() { 
    var dataString = $('#login_form').serialize(); 
    console.log(dataString); 
    $(".menu_login_form").html("<center>Logging in...</center>"); 
    $.ajax({ 
     type: "POST", 
     url: "../include/actions/login.php", 
     data: dataString, 
     cache: false, 
     success: function(html){ 
     $(".menu_login_form").html(html); 
     } 
    }); 
    return false; 
    }; 
    $("#login_form").on("submit", login); 

這裏是我的html代碼:

<div class="menu_login_form"> 
    <form id="login_form" method="post"> 
    <input type="text" name="username" placeholder="Username"><br> 
    <input type="password" name="password" placeholder="Password" style=""><br> 
    <input type="checkbox" name="remember" checked="checked" style="margin:0;margin-right:10px;margin-top:-2.5px"><span>Remember Me</span><br> 
    <input type="submit" value="Login..." id="login_form_btn" class="btn"> 
    </form> 
</div> 

有誰知道什麼是錯在這裏?

編輯:我現在正在工作,我只是把它放在錯誤的地方 - joeframbach我已經接受你的答案,因爲它是唯一的那裏。感謝您的所有建議。

+3

使用網絡檢查器,檢查網絡選項卡。當你開始表單提交時,它會發出網絡請求。檢查它是否到達正確的文件位置,並檢查從服務器獲得的響應。 – Ohgodwhy 2013-03-23 21:44:24

+0

那麼發生的事情是ajax請求根本沒有發送,表單只是像任何正常的表單一樣提交(網絡選項卡中沒有顯示,頁面只是刷新)。 – domo270897 2013-03-23 22:07:37

+0

如何進行一些理智檢查。在控制檯中,運行'$(「#login_form」)'確保存在。運行'$('#login_form')。serialize()'確保它是正常的。 – 2013-03-24 01:41:55

回答

0

將其包裝在文檔就緒的咒語中。這告訴jquery在做任何事之前等待頁面完全加載。

$(function() { 
function login() { 
    var dataString = $('#login_form').serialize(); 
    console.log(dataString); 
    $(".menu_login_form").html("<center>Logging in...</center>"); 
    $.ajax({ 
     type: "POST", 
     url: "../include/actions/login.php", 
     data: dataString, 
     cache: false, 
     success: function(html){ 
     $(".menu_login_form").html(html); 
     } 
    }); 
    return false; 
}; 
$("#login_form").on("submit", login); 
}); 
+0

感謝您的回覆,並感謝您提醒我已忘記了一些事情,但這不是問題(使用建議的代碼後沒有任何更改)。 – domo270897 2013-03-23 22:06:13

+0

如果您有腳本運行時之前需要填充DOM的外部內容(例如圖像),則可以使用'$(window).load(handler_function);'http://api.jquery.com/load -事件/ – 2013-03-23 22:25:58