如何动态地将变量分配给dojo.xhrPost的内容attr?以下是我的方案的代码和一些解释:
包含内容硬编码值的代码
dojo.xhrPost({
url: /esturl/,
handleAs : "text",
content : {INST1 : '{"0001" : "aa"}',
INST2 : '{"0002" : "bb"}',
INST3 : '{"0003" : "cc"}'}
load : load(data),
error : error
});
Content attr中INST的数量可以是最小1和最大6,截至目前我在那里硬编码3对。
但我希望有一个var
buildJason
var buildJson = function (){
}
这是var will populate dynamic value to content attr
。
我来自
"0001" "aa"
值
var element = dojo.query('input:checked');
element.id;
但是,每次用户检查不同的框而不是依赖于用户选择值时,内容attr应该动态填充,有关如何实现这一点的任何建议吗?
更新
使用CastroXXL
建议的方法后,我在firebug上收到以下错误消息。
missing : after property id
var myContent = {};\n
有关如何处理它的任何建议吗?
答案 0 :(得分:1)
要构建JSON对象,您可以使用下面的代码。
var buildJson = function (name, value){
var myJson = {};
myJson[name] = value;
return myJson;
};//Forgot the semicolon.
将这些放在一起的脚本可能如下所示。
var myContent = {};
var count = 0;
dojo.query("input:checked").forEach(function(input){
myContent['INST' + count] = buildJson(input.id, input.value);
count++;
});
dojo.xhrPost({
url: /esturl/,
handleAs : "text",
content : myContent,
load : load(data),
error : error
});
编辑: 当您执行以下操作时,您会收到该错误。
var test = {
var myContent = {};
};
您可以在之前关闭JSON对象:
var test = {};
var myContent = {};
或者你可以让myContent在你的JSON中工作,如:
var test = {
myContent:{}
};