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

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 に答える
0

問題はrequestObj["item_id"]= item.toString();にありました。

場合によっては、これはnullであり、エラーで終了していました。回答してくれたすべての人に感謝します。

于 2012-09-09T12:17:04.837 に答える