我已经阅读了另一个帖子并且它没有用:Put data into JSON with Jquery
每当我尝试JSON.stringify一个对象数组时,我都会收到错误消息:
Uncaught InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable.
这是我的JS:
var responseItems = [];
var keynoteContainer = $('div.keynote-questions');
var eventQuestionContainer = $('div.event-questions');
var sessionContainer = $('div.session-questions');
var eventId = $('#Evaluation-Event-Id').val();
keynoteContainer.children().each(function (index, el) {
var element = $(el);
var id = "-1";
var parentId = element.find('input[type=hidden]').val();
var parentType = "Keynote";
var responseValue = element.find('.response-item-slider').slider("option", "value");
var responseText = "";
var response = { "Id": id, "EventId": eventId, "ParentId": parentId, "ParentType": parentType, "ResponseValue": responseValue, "ResponseText": responseText };
responseItems.push(response);
});
eventQuestionContainer.children().each(function (index, el) {
var element = $(el);
var id = "-1";
var parentId = element.find('input[type=hidden]').val();
var parentType = "EventQuestion";
var responseValue = element.find('.response-item-slider').slider("option", "value");
var responseText = element.find('textarea').val();
var response = { "Id": id, "EventId": eventId, "ParentId": parentId, "ParentType": parentType, "ResponseValue": responseValue, "ResponseText": responseText };
responseItems.push(response);
});
sessionContainer.children().each(function (index, el) {
var element = $(el);
var id = "-1";
var parentId = element.find('input[type=hidden]').val();
var parentType = "Session";
var responseValue = element.find('.response-item-slider').slider("option", "value");
var responseText = "";
var response = { "Id": id, "EventId": eventId, "ParentId": parentId, "ParentType": parentType, "ResponseValue": responseValue, "ResponseText": responseText };
responseItems.push(response);
});
responseItems = JSON.stringify(responseItems);
我已经尝试记录所有内容,它只会在我对其进行字符串化的最后一行中断。
我该如何解决这个问题?任何建议或信息都将受到高度赞赏。
答案 0 :(得分:4)
我有同样的错误。就我而言,当我设置其中一个模型属性时,我忘记了.val()。在我尝试JSON.stringify模型之前没有错误
this.model.set(
{
customername: this.$("#customername").val(),
jobtitle: this.$("#jobtitle"), //This was the line causing the error
testimonialtext: this.$("#testimonialtext").val()
});
答案 1 :(得分:2)
我遇到了同样的问题。在我的情况下,修复了我的故障变量toArray()。我的意思是这样的:
responseItems = responseItems.toArray();
我不知道为什么该变量看起来像一个数组,但事实并非如此
之后你可以打电话:
JSON.stringfy(responseItems);
没有问题。
PD:对不起我的英语我不是母语为英语的人