在DataTables中为渲染选择设置初始选定选项

时间:2017-11-04 12:12:38

标签: javascript jquery ajax datatables

我在DataTable中附加选定的值选项时遇到问题。

这是我的JavaScript代码

  var table = $('#tablesurvey').DataTable( {
    "ajax": {
        "url": '<?php echo site_url('data'); ?>',
        "type": "POST"
    },

    "columns": [
        {"data": "id_vote"},
        {"data": "nama"},
        {"data": "nik"},
        {"data": "desa"},
        {"data": "rt"},
        {"data": "vote"}
    ],
        "columnDefs": [ {
            "targets": -1,
            "render": function (data, type, row, meta){
             return "<select class='pilihan form-control' id='pilihan'><option value='0'>--Pilihan--</option><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option</select>";
         }
        } ],
    } );
  

之前的结果

1]

  

得到我想要的东西

2]
如何为渲染的选择框设置初始选定选项?

1 个答案:

答案 0 :(得分:7)

您可以通过编程方式构建<select>,即逐步添加<option>并与data.vote进行比较。或者您可以使用更通用的基于jQuery的解决方案:

render: function (data, type, row, meta){
  var $select = $("<select class='pilihan form-control' id='pilihan'><option value='0'>--Pilihan--</option><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option></select>");
  $select.find('option[value="'+data.vote+'"]').attr('selected', 'selected');
  return $select[0].outerHTML
}