2016-03-06 3 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 selectbox?

как, например. I значением по умолчанию для select2 было "Monday", выбрав дату, когда текущее значение select2 теперь пусто.

Как изменить значение select2 с помощью jquery?

Я читал другие старые сообщения здесь. но они не работают.

ответ

2

В этом примере value вашего select2 selectbox является идентификатором (0-6). Вы пытаетесь установить значение на метку selectbox. Также вам нужно вручную запустить событие «change» в поле 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: Ваш браузер не хватает целую кучу

запятой
+0

Я знаю, что мои JS пропавших много все запятой. сила привычки с питоном хахаха. так вот для чего вал. Теперь это имеет смысл. – halcyonjuly7

Смежные вопросы