2012-01-14 178 views
-1

我有另一個類似的腳本運行得很好,我不明白爲什麼這不起作用。這段代碼有什麼問題嗎?jQuery沒有正確執行ajax請求

$("#lastname").keyup(function(event){ 
    var keyCode = event.keyCode || event.which; 
    if(keyCode === 13) { 
     passOnRegFront(); 
    } 
    }); 
    $("#register").click(function() { 
     passOnRegFront(); 
    }); 
function passOnRegFront() { 
     var firstname = $("#firstname").val(); 
     var lastname = $("#lastname").val(); 
     var dataString = '&firstname=' + firstname + '&lastname=' + lastname; 
     if(email=='' || password=='') { 
      $('#success').fadeOut(400).hide(); 
      $('#error').fadeOut(400).show(); 
     } else { 
      $.ajax({ 
       type: "POST", 
       dataType: "JSON", 
       url: "<?=base_url()?>index.php/home/passOnReg", 
       data: dataString, 
       json: {session_state: true}, 
       success: function(data) { 
       if(data.registered == true) { // true means user is logged in. 
        $("#main1").hide(); 
        $("#main1").load('<?=base_url()?>index.php/home/dashboard'); 
       } 
      } 
     }); 
     } 
    } 
}); 
+0

有至少一個請求被髮送?如果這樣的請求是正確的?它返回什麼? – PeeHaa 2012-01-14 01:14:57

+0

什麼都沒有發送。 – 2012-01-14 01:22:22

+0

您是否測試過通過執行'alert()'或'console.log()'獲得條件的'else'部分。網頁上是否有任何錯誤? – PeeHaa 2012-01-14 01:23:40

回答

1

下面的問題我跳了出來,我通過你的代碼脫脂:

  • emailpassword變量沒有定義,並從我猜的背景下,你可能打算firstnamelastname在那時候。從你提到的其他腳本複製和粘貼錯誤?

  • 在區塊末尾還有一個額外的});。也許這只是你沒有顯示的$(document).ready(function() {的結尾,但顯然我不知道你有多少代碼沒有顯示 - 因爲你已經顯示這是一個錯誤。

順便說一句,如果你固定縮進它會更容易閱讀和調試:乍一看似乎正在創建內部的.keyup()處理程序.click()處理器

另一方面,如果您查看使用對象來設置.ajax()調用的data屬性,代碼可能會更清晰。擺脫dataString,只是說:(jQuery將創建適當的查詢字符串,你在the .ajax() doco描述)

... 
data : { firstname : firstname, lastname : lastname }, 
...