【问题标题】:Select2 does not show the set valueSelect2不显示设定值
【发布时间】:2016-01-20 12:51:39
【问题描述】:

有一个select2 元素:

<select name="commande_id" id="commande">
    <option value=""> -- Choisir une commande -- </option>
    <option value="1">COM-2-2015</option>
</select>

$(document).ready(function() {
        ...
        $("#commande").select2({width:'100%'});
        ...
});

当我以更新模式进入页面时,我以编程方式将选择元素的选项值设置为数据库中的值:

$(document).ready(function() {
       ...
       <?php
        if (isset($data)) { ?>
            ...
            $("#commande").val("<?php echo $data[0]['commande_id'];?>");
            ...
        <?php
        }
        ?>
        ...
});

问题是在运行时选择元素没有显示适当的文本:

但是当我点击它时,会选择适当的值:

那么如何让合适的文字显示出来呢?

【问题讨论】:

  • 不知道我理解的对不对,你想把正确的值放在正确的地方吗?用 php 设置选项的值和名称不是更好吗?
  • 检查答案是否对您有所帮助
  • 更改值后需要触发change事件,导致问题。
  • @KevinBrown 请将其作为答案,因为它可以完美运行! :)

标签: jquery-select2 jquery-select2-4 select2


【解决方案1】:

我不知道你是怎么得到$data的,但我猜是这样的,只是一个例子:

<?php

$data[] = ["commande_id" => "1", "name_field" => "COM-2-2015"];

foreach ($data as $key => $value){
?>
<select>
    <option value='<?php echo $value['commande_id']?>'><?php echo $value['name_field'] ?></option>
</select>
<?php } ?>

看这里:https://ideone.com/PSpKmu

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    相关资源
    最近更新 更多