2012-09-09 44 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]] 
];