2016-03-06 140 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