0
我有一组选择字段#jobstatus
,#jobsize
等...JSON填充多个选择字段
这些在整个项目中多个页面中使用。
为了让这些选择字段在整个项目中保持最新,我尝试使用getJSON来解析保存在外部JSON文件中的JSON值。
我希望每个选择字段的选项值使用来自相应JSON文件的正确值填充。
的JSON阵列格式如下:
/*Job Status */
[
{ "name": "All Job Statuses" },
{ "name": "To start" },
{ "name": "In progress" },
{ "name": "On hold" },
{ "name": "Completed" },
{ "name": "Cancelled"}
]
/*Job type */
[
{ "name": "All Job Types" },
{ "name": "Development" },
{ "name": "Feature/Service" },
{ "name": "Task Submission" },
{ "name": "Bug/Fix" },
{ "name": "Chore" },
{ "name": "Misc/Other" },
{ "name": "Discussion/Planning" },
]
的选择字段对应的HTML如下:
<select id="jobstatus" class="json" ></select>
<select id="jobtypes" class="json" ></select>
我想使用的getJSON函数解析出正确的数据每个选择字段,但我无法弄清楚如何让脚本为每个选择字段运行getJSON函数。
这里是我的脚本至今:
$('#filter select.json').each(function() {
var select = $(this, 'select');
var selectid = select.prop('id');
$(select).attr({
required:'required',
name: selectid
}).addClass('form-control');
$.getJSON('js/' + selectid + 'data.json', function(data){
var html = '';
var len = data.length;
for (var i = 0; i< len; i++) {
html += '<option';
if(i == 0) {
html += ' selected';
};
if(i > 0) {
html += ' value="' + i + '"';
};
html += '>' + data[i].name + '</option>';
}
$('#' + selectid).append(html);
});
console.log('select ', select + ' , selectid ', selectid);
});
我在哪里出了错?只有第一个选择字段#jobstatus
正在填充来自第一个数组的数据,这不是我所期望的。
将这些JSON文件合并为一个好处吗?
谢谢
你怎么知道你做错了什么?你遇到了什么错误? – nem035 2014-12-02 16:31:40
只有第一个选择字段'#jobstatus'正在填充第一个数组,这并不是我期望的。 – onebitrocket 2014-12-02 16:33:06
没有错误。此代码运行。 – electron 2014-12-02 16:58:31