2016-03-06 219 views
0
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选择框的值?

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

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

我读过这里的其他旧帖子。但他们不工作。

回答

2

在本例中,select2选择框的value是ID(0-6)。您正试图将该值设置为选择框的标签。您还需要使用...手动触发select2框中的“更改”事件。.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是缺少了一大堆分号

+0

的,我知道我的js缺少很多所有分号。蟒蛇hahaha习惯的力量。所以这就是val的意思。现在有道理。 – halcyonjuly7

相关问题