【问题标题】:How to change the value of select2 selectbox?如何更改select2选择框的值?
【发布时间】:2016-03-06 07:25:11
【问题描述】:
days_of_week = [{id: 0, text: "Monday"},
                {id: 1, text: "Tuesday"},
                {id: 2, text: "Wednesday"},
                {id: 3, text: "Thursday"},
                {id: 4, text: "Friday"},
                {id: 5, text: "Saturday"},
                {id: 6, text: "Sunday"}]


$("#test").select2({
        data: days_of_week
    })


$("#date").datepicker({
        format: "yyyy-mm-dd"

        })


$("#date").datepicker().on("changeDate", function(event) {
        var selected_date = $("#date").val()
        var day_name = moment(selected_date, "YYYY-MM-DD").format("dddd")
        $("#test").val(day_name)

    })

所以基本上我在这里尝试做的是从datepicker 中选择一个日期 使用moment 获取该日期的日期名称并将$("#test").select2() 的值更改为选定的day_name,但最终发生的是$("#test").select2() 的值已更改但已更改为空。

例如。我 select2 的默认值是 "Monday" 选择日期 select2 的当前值现在是空的。

我们如何使用 jquery 改变 select2 的值?

我在这里阅读了其他较早的帖子。但它们不起作用。

【问题讨论】:

    标签: javascript jquery jquery-select2-4 select2


    【解决方案1】:

    在此示例中,您的 select2 选择框的 value 是一个 ID (0-6)。您正在尝试将值设置为选择框的标签。此外,您还需要根据documentation 使用....trigger("change"); 在 select2 框中手动触发“更改”事件。

    所以你必须这样做:

    $("#date").datepicker().on("changeDate", function(event) {
        var selected_date = $("#date").val();
        //var day_name = moment(selected_date, "YYYY-MM-DD").format("dddd");
        var day_index = moment(selected_date, "YYYY-MM-DD").format("d"); //returns day of week 0-6
        $("#test").val(day_index).trigger("change");
    })
    

    PS:你的 javascript 缺少一大堆分号

    【讨论】:

    • 我知道我的 js 缺少很多分号。 python的习惯力量哈哈哈。所以这就是 val 的用途。现在说得通了。
    猜你喜欢
    • 2016-02-03
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2013-01-27
    相关资源
    最近更新 更多