2012-09-09 42 views
0

爲什麼在此代碼末尾沒有執行「hello」警報?其他一切工作正常,但警報不會觸發。我錯過了什麼? PS,我是初學者,當涉及到的Javascript ...JavaScript之後的代碼循環,Ajax未執行

$('.save_button').click(function(){ 
    var numItems = dataseries.length; 
    var item; 
    var sequence; 
    var question = <%[email protected]%>; 
    for (i=0;i<numItems;i++){ 
    var requestObj = { 
     question_id: "<%[email protected]%>", 
     user_id: "1", 
    } 
    item = $('.item_list li[data-seq='+i+']').attr('id'); 
    requestObj["item_id"] = item.toString(); 
    requestObj["x"]= dataseries[i][0][0]; 
    requestObj["y"]= dataseries[i][0][1]; 
    if (requestObj["item_id"]!="null"){ 
     var a = $.ajax({ 
     url: "<%=responses_path%>", 
     data: requestObj, 
     type: "POST", 
     dataType: 'script', 
     success: function(data, textStatus, jqXHR) { 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
      alert('error!'); 
     }, 
     headers: { 
      'X-CSRF-Token': '<%= form_authenticity_token.to_s %>' 
     } 
     }); 
    } 
    } 
    alert("hello"); 
}); 
+1

控制檯說什麼? – dda

+0

正如@dda所說,你的開發者控制檯(Firebug,Safari/Chrome Console)應該在某處吐出錯誤。 –

+0

由於顯然有更多與此相關的代碼比你張貼,如果我把引號標記在絕對不會孤立的部分周圍,例如, 「dataseries.length」,「item.toString();」它工作正常!很明顯,我在ajax上遇到了404錯誤(不是說我在連接到互聯網的時候測試了你的代碼),但是你的代碼運行了,我甚至得到了一個警告框。檢查並查看是否有其他代碼受到干擾,並查看控制檯中的錯誤。 – sajawikio

回答

0

的問題是與requestObj [ 「ITEM_ID」] = item.toString();

在某些情況下,這是空的,它正在退出時出現錯誤。感謝所有迴應的人。

0

var question = <%[email protected]%>;應該是var question = "<%[email protected]%>";(字符串)。

我用下面的附加代碼嘗試過了,它工作得很好:

<!-- HTML --> 
<input type="button" class="save_button" value="Save" /> 
<ul class="item_list"> 
    <li id="item1" data-seq="0">item1</li> 
    <li id="item2" data-seq="1">item2</li> 
    <li id="item3" data-seq="2">item3</li> 
</ul>​ 

// JS: 
var dataseries = [ 
    [[1 /* x */, 2 /* y */]], 
    [[2, 3]], 
    [[3, 4]] 
];