这个时候我已经挠了一下头。不知道。
我有一个返回javascript对象的函数,准备将其传递给JSON.stringify函数。当我这样做时,出现循环引用错误。看来'callWidget'方法返回的是我不想要的匿名函数。我只是看不到错误。
function putAnswersTogether() {
var answers = [];
$(".addedquestion").each(function(i, e) {
var answerJSON = {qname: $(e).find(".questionname").val(),
answerid: $(e).attr("answerid"),
answer: callWidget($(e), "getResponse", "")};
answers.push(answerJSON);
});
return answers;
}
function callWidget(questioncontroldiv, method, value) {
var divtype = $(questioncontroldiv).attr('id');
var result;
switch(divtype) {
case "mogrify-multiplechoice":
result = $(questioncontroldiv).multiplechoice(method, value);
break;
case "mogrify-checkbox":
result = $(questioncontroldiv).checkbox(method, value);
break;
}
return result;
}
// The following methods are contained within widgets for multiplechoice and checkbox
_getResponseJSON: function() {
var qname = this._getQuestionName();
var answers = [];
this.options.questioncontrol.find(
"input[name='optradio-" +
qname +
"']:checked"
).each(function(i,e) {
answers.push($(e).val());
});
return answers;
},
_getResponseJSON: function() {
qname = this._getQuestionName();
var answer = this.options.questioncontrol
.find("input[name='optradio-" + qname + "']:checked")
.val();
return answer;
},
答案 0 :(得分:0)
您已经将jQuery对象从函数 putAnswersTogether 传递给 callWidget
answer: callWidget($(e), "getResponse", "")
因此从 callWiget 功能
中删除jQuery标签。var divtype = $(questioncontroldiv).attr('id');