我的jsfiddle将有助于更好地解释事情>< http://jsfiddle.net/L65QD/17/
我有两个选择框,当你从第一个选择中选择它时会启用第二个选择框。我有很多数组,我正在使用它作为一个虚假的数据库。
我需要发生的是,取决于在profile_select中选择的内容,它需要为它拥有的每个PRIVILEGE_CODE生成复选框,但是必须使用它们旁边的SEC_PRIVILEGES.Name而不是实际的PRIVILEGE_CODE生成复选框,它们必须是在正确的DIV中生成。因为我很难解释我制作了一个JSFiddle,它只是总结了它http://jsfiddle.net/L65QD/17/
如果我的指示不明确:
这是我正在尝试的方法,但它并没有真正意义,甚至可能不是在正确的线上:
$(document).on('change', '#select_profile', function () {
var Select = $("#select_profile option:selected").text();
$("#apps").html;
for (var i = 0; i < SEC_Privileges.length; i++) {
if (SEC_Privileges[i].Unique_Code == //something?) {
$('#DA').html("<b>lol</b>");
}
}
});
答案 0 :(得分:3)
这很简单:
[]
,而不是()
)。当您记录PRIVILEGE_PROFILE[0].PRIVILEGE_CODE
时,您只会看到第一个代码被记录为密钥的值。结果:http://jsfiddle.net/kevinvanlierde/L65QD/19/
一些惯例:
还想补充一点,如果我要控制对象的结构,我可能会选择更加分层的树/ JSON类结构,例如代替当前对象,执行:
var SEC_Privileges = {
'DA': {
'name': 'Dispatch App',
'accesses': {
'DAAccess': 'Access',
'DASuper': 'Supervisor'
}
},
'MR': {
'name': 'MyRoster',
'accesses': {
'MRAccess': 'Access',
'MRSuper': 'Supervisor'
}
}
}
因为对象键本身就是值,所以您可以使用它们来构建您的用户界面,例如获取MRAccess
的全名,您可以执行SEC_Privileges.MR.name + SEC_Privileges.MR.accesses.MRAccess
之类的操作来获取MyRoster Access
答案 1 :(得分:2)
有不同的方法可以解决这个问题,但特权的数量总是相同的吗?根据你的SEC_privileges是什么,如果它的JSON数组,那么你可以遍历该数组并访问代码和描述。然后,您需要再次验证整个集合中的所选权限,并说出如下内容:
var array = ('one','two','three');
if($.inArray(SEC_privileges[i].Unique_code, array))
{
$('#DA').html("<input type='checkbox' id='"+i+"' value='"+SEC_privileges[i].Unique_code+"' checked/>"+SEC_privileges[i].Unique_desc);
}
else
{
$('#DA').html("<input type='checkbox' id='"+i+"' value='"+SEC_privileges[i].Unique_code+"'/>"+SEC_privileges[i].Unique_desc);
}
通过添加单词checked作为html输入对象的一部分来完成勾选值。如上图所示