Javascript getjson()jquery下拉列表不工作
我有以下json文件:Javascript getjson()jquery下拉列表不工作,javascript,jquery,json,getjson,Javascript,Jquery,Json,Getjson,我有以下json文件: { "viewport_size": {"display_name":"VIEWPORT SIZE:", "name":"viewport_size", "format":"number", "type":"dropdown", "dflt":"640 * 480", "values
{
"viewport_size":
{"display_name":"VIEWPORT SIZE:",
"name":"viewport_size",
"format":"number",
"type":"dropdown",
"dflt":"640 * 480",
"values":["800*600","1280*720","1920*1080"],
"isMandatory":"true"},
"framerate":
{"display_name":"FRAMERATE:",
"name":"fps",
"format":"number",
"type":"dropdown",
"dflt":"30",
"values":["45","60","90"],
"isMandatory":"true"},
"pattern_resolution":
{ "display_name":"PATTERN RESOLUTION:",
"name":"resoln",
"format":"number",
"type":"dropdown",
"dflt":"8",
"values":["16","32","64"],
"isMandatory":"true"}
}
我正在尝试使用getJSON填充js文件中的下拉列表
var INPUT_TEXT='<input type="text"/>';
var INPUT_RADIO='<input type="radio"/>';
var INPUT_CHECKBOX='<input type="checkbox"/>';
var INPUT_DROPDOWN='<select id="items"></select>';
var SUBMIT_BUTTON='<input type="button" value="SUBMIT"/>';
var NEWLINE='<br></br>';
$.getJSON('json_input/client_settings_input.json',function(clientData)
{
$.each(clientData,function(i,feild)
{
if(this.type=="dropdown")
{
var html = '';
var len = feild.values.length;
//alert('lenght is'+len);
for (var i = 0; i< len; i++){
//alert('inside for');
html += '<option>'+ feild.values[i]+'</option>';
}
$('body #tabs #tabs-2 client').append (this.display_name).append(INPUT_DROPDOWN).append(html).append(NEWLINE);
}
});
$('body #tabs #tabs-2 #client').append(SUBMIT_BUTTON);
});
但我无法查看下拉列表和值…请指出我的错误
我希望像这样填充视口:dropdownlist值
帧率:下拉列表值
模式分辨率:下拉列表值
.append($(INPUT_DROPDOWN).html(html))
.appendINPUT_DROPDOWN.appendhtml的istead
选项必须在“选择”中,但插入的级别与“选择”的级别相同。
请参见尝试添加参数jsoncallback=?到您的URL
$.getJSON('json_input/client_settings_input.json?jsoncallback=?',function(clientData)
jQuery将用ID替换jsoncallback参数之后的最后一个问号
然后,服务器端将使用该ID创建一个响应,该响应将以ID值命名的函数开始
这将导致一个类似以下内容的响应:
jQuery16205149872086476535_1314088378455({
"viewport_size":
{"display_name":"VIEWPORT SIZE:",
"name":"viewport_size",
"format":"number",
"type":"dropdown",
"dflt":"640 * 480",
"values":["800*600","1280*720","1920*1080"],
"isMandatory":"true"},
"framerate":
{"display_name":"FRAMERATE:",
"name":"fps",
"format":"number",
"type":"dropdown",
"dflt":"30",
"values":["45","60","90"],
"isMandatory":"true"},
"pattern_resolution":
{ "display_name":"PATTERN RESOLUTION:",
"name":"resoln",
"format":"number",
"type":"dropdown",
"dflt":"8",
"values":["16","32","64"],
"isMandatory":"true"}
});
因此,在一个简短的回答中,如果您的json响应没有包装在这个函数名中,那么回调函数将不会启动,相反,您将得到一个错误,您可以这样看:
$.getJSON('json_input/client_settings_input.json?jsoncallback=?',function(clientData) {
//your code
}).error(function(jqXHR, textStatus, errorThrown) {
alert("Error: " + textStatus + " errorThrown: " + errorThrown);
})
希望这有帮助
帕特里克