获取动态输入ID javascript

时间:2018-10-12 04:34:38

标签: javascript php html

我有一个输入类型复选框,并从数据库和表单中加载

<input type="checkbox" name="akses[]" 
id="<?php echo $menu_id;?>" 
value="<?php echo $action_name;?>"> <?php echo $menu_name;?>

我的json是

{
"status": 200,
"message": "sukses",
"data": {
    "fullname": "TEST",
    "username": "TEST_USER",
    "position": "24",
    "privileges_status": "based on jabatan",
    "list_menu": [{
        "action_name": "menu1 ",
        "parent_id": 9,
        "menu_id": 15,
        "menu_name": "Menu 1"
    }, {
        "action_name": "menu2",
        "parent_id": 9,
        "menu_id": 16,
        "menu_name": "Menu 2"
    }]
}

}

我已经使用ajax成功解析了id,但是问题是我不知道如何检查json中的id是否与输入中的id相同。

如果我像

这样手动定义
<input type="checkbox" name="akses[]" id="15" value=""> Menu 1

我可以选中并自动选中该复选框

现在我这样更改输入类型

<input type="checkbox" name="akses[]" id="menu1" value=""> Menu 1

更新:实现建议的答案后,像这样的js

for (var i = 0; i < res['data']['list_menu'].length; i++) 
 {
   var action_name = res['data']['list_menu'][i]['action_name'];
   var idsFromJSON = new Array();
   idsFromJSON.push(action_name);
   console.log(idsFromJSON);

  $("[name='akses[]']").each(function() {
    this.checked=idsFromJSON.indexOf(this.id)!=-1;
  });
}

但是没有用。如果我像这样手动声明数组,那就行了

var idsFromJSON=["menu1", "menu2"];

1 个答案:

答案 0 :(得分:0)

您想要这样的东西

但是我建议不要使用数字ID

var idsFromJSON=["menu15","menu16"];

$("[name='akses[]']").each(function() {
  this.checked=idsFromJSON.indexOf(this.id)!=-1;
});