0

为什么这段代码末尾的“hello”警报没有执行?其他一切工作正常,但警报不会触发。我错过了什么?PS,我是 Javascript 的初学者...

$('.save_button').click(function(){
  var numItems = dataseries.length;
  var item;
  var sequence;
  var question = <%=@question.id%>;
  for (i=0;i<numItems;i++){
    var requestObj = {
      question_id: "<%=@question.id%>",
      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");
});
4

2 回答 2

0

问题出在 requestObj["item_id"] = item.toString();

在某些情况下,这是 null 并且它正在退出并出现错误。感谢所有回复的人。

于 2012-09-09T12:17:04.837 回答
0

var question = <%=@question.id%>;应该是var question = "<%=@question.id%>";(一个字符串)。

我使用以下附加代码进行了尝试,效果很好:

<!-- 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]]
];
于 2012-09-09T11:57:39.767 回答