设置“val”不起作用(预选)

时间:2014-08-20 09:36:46

标签: javascript jquery jquery-select2

我已经看过关于SO和Git中心的多个问题:

但我似乎还无法弄清楚为什么没有设置这些值。

我使用的是jinja2模板,因此我会生成生成的html / js:

<div class="form-group">
    <label class="control-label col-sm-4" for="message_type">Meassage Type</label>
    <div class="col-sm-5">
        <input type="hidden" name="message_type" id="message_type" readonly />
    </div>
</div>

和js:

$(function () {
    $("#message_type").select2({
        placeholder: "Email/SMS/PIMS Modal",
        multiple: true,
        width: "300px",
        tokenSeparators: [',', ' '],
        data: [{
            id: "email",
            text: "Email"
        }, {
            id: "pims modal",
            text: "PIMS Modal"
        }, {
            id: "sms",
            text: "SMS"
        }, ],
    });

    $("#message_type").select2("val", "pims modal");

});

我还设法重现了结果,请参阅example

1 个答案:

答案 0 :(得分:2)

出现此问题是因为您已将multiple属性设置为true。在这种情况下,要设置一个值,您需要使用数组而不是字符串。

例如:

$(function () {
    $("#message_type").select2({
        placeholder: "Email/SMS/PIMS Modal",
        multiple: true,
        width: "300px",
        tokenSeparators: [',', ' '],
        data: [{
            id: "email",
            text: "Email"
        }, {
            id: "pims modal",
            text: "PIMS Modal"
        }, {
            id: "sms",
            text: "SMS"
        }, ],
    });

    $("#message_type").select2("val", ["email"]);
});

这里的工作演示:http://jsfiddle.net/nww22qoj/19/

编辑:这是一个使用4.0.1版本的插件http://jsfiddle.net/nww22qoj/20/使用插件的完整版本)的工作jsfiddle