如何使用SELECT2输入框方法设置默认值

时间:2016-10-18 03:14:52

标签: javascript jquery select2

我有一个动态表单,有多个下拉列表。每个下拉列表都由人员姓名组成。我的问题是我不知道如何设置默认值。 在更新表单中,我只使用标准下拉列表,然后我可以设置初始值,但我想在所有表单中使用select2作为标准下拉列表。

这是我的代码:

<!-- OLD DROPDOWN WORKS FINE -->
<select class="form-control input-sm" name="contract_main_jp_officer[]">
    <?php if($v['main_jp'] == 0) { ?>
        <option value=""> -- SELECT OFFICER --</option>
    <?php } ?>
    <?php select_officer($v['main_jp']); ?>
</select>

<!-- I USED SELECT2 DROPDOWN -->
<input type="text" class="form-control officer_selection input-sm form_control_outline input_white upper off_sel" name="contract_main_jp_officer[]" value="<?php echo set_value('contract_main_jp_officer', 0); ?>" />
<label for="name" class="text-info">Main Japanese Relation Officer: </label>

这是帮助我获取保存值的帮助(但它是正常下拉列表):

if ( ! function_exists('select_officer')) {
    function select_officer($selected = 0) {

        $CI =& get_instance();
        $CI->load->model('contracts/Contracts_model');

        $officer = $CI->Contracts_model->load_relation_officer();
        $row_list = array();

        foreach($officer as $l) {

            $s = ($selected == $l['id']) ? "selected='selected'" : "";
            echo "<option value='" . $l['id'] . "' " . $s . ">" . $l['text'] . "</option>";

        }

    }
}

在我的页面加载中,我初始化这部分,以便我可以获得我需要在下拉列表中输入的所有值。

//officer lists
$(".officer_selection").select2({
    data: data
});

您能帮我解决如何在多个下拉列表中设置默认值? 我有4种下拉菜单,分别是日本主要官员,助理日本官员,主要当地官员和助理当地官员。所有这些都包含相同的下拉值。

2 个答案:

答案 0 :(得分:1)

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function(){

$('.officer_selection').each(function(){
$(this).find('option:eq(3)').prop('selected', true);
});
});
</script>
</head>
<body>
<select class= 'officer_selection'>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>


<select class= 'officer_selection'>
  <option value="volvo">Volvo1</option>
  <option value="saab">Saab1</option>
  <option value="mercedes">Mercedes1</option>
  <option value="audi">Audi1</option>
</select>

<select class= 'officer_selection'>
  <option value="volvo">Volvo2</option>
  <option value="saab">Saab2</option>
  <option value="mercedes">Mercedes2</option>
  <option value="audi">Audi2</option>
</select>


<select class= 'officer_selection'>
  <option value="volvo">Volvo3</option>
  <option value="saab">Saab3</option>
  <option value="mercedes">Mercedes3</option>
  <option value="audi">Audi</option>
</select>
</body>
</html>

答案 1 :(得分:1)

试试这个

<input type="text" id="select2-sample">

使用数据

初始化选择2
$("#select2-sample").select2(
    {
      data:{results:[{name:"item1", id:123},{name:"item2", id:456}], text:"name"},
      formatSelection: function(item){return ashtmlString(item.name);},
      formatResult: function(item){return item.name}
    }
);

设置默认值

$("#select2-sample").select2('val', 456);