为什么此代码末尾的“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");
});
答案 0 :(得分: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]]
];
答案 1 :(得分:0)
问题在于requestObj [“item_id”] = item.toString();
在某些情况下,这是null并且它正在退出并出现错误。感谢所有回复的人。