如何更改select2选择框的值?
How to change the value of select2 selectbox?
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)
})
所以基本上我在这里尝试做的是 select 来自 datepicker
的日期
使用 moment
获取该日期的日期名称并将 $("#test").select2()
的值更改为 selected day_name
但最终发生的是 [=13= 的值] 已更改,但已更改为空。
比如。 select2 的默认值是一个 "Monday"
select 日期 select2 的当前值现在为空。
我们如何使用 jquery 更改 select2 的值?
我已阅读此处的其他旧帖子。但它们不起作用。
在此示例中,您的 select2 选择框的 value
是一个 ID (0-6)。您正在尝试将值设置为选择框的标签。您还需要使用... .trigger("change");
根据 documentation.
在 select2 框上手动触发 "change" 事件
所以你必须这样做:
$("#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 少了一大堆分号
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)
})
所以基本上我在这里尝试做的是 select 来自 datepicker
的日期
使用 moment
获取该日期的日期名称并将 $("#test").select2()
的值更改为 selected day_name
但最终发生的是 [=13= 的值] 已更改,但已更改为空。
比如。 select2 的默认值是一个 "Monday"
select 日期 select2 的当前值现在为空。
我们如何使用 jquery 更改 select2 的值?
我已阅读此处的其他旧帖子。但它们不起作用。
在此示例中,您的 select2 选择框的 value
是一个 ID (0-6)。您正在尝试将值设置为选择框的标签。您还需要使用... .trigger("change");
根据 documentation.
所以你必须这样做:
$("#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 少了一大堆分号