2015-04-30 3 views
1

Я использую семантическое-UI вместе с Django и у меня есть следующее выпадающее меню в виде:семантико-Ui DropDown в OnChange не стреляя

HTML

<form id="lang_form" action="{% url 'set_language' %}" method="post"> 
    {% csrf_token %} 
    {% get_current_language as LANGUAGE_CODE %} 
    {% get_available_languages as LANGUAGES %} 
    {% get_language_info_list for LANGUAGES as languages %} 
    <input id="lang_input" name="language" type="hidden"> 
    <div id="lang_dropdown" class="ui icon dropdown button "> 
    <span class="text"></span> 
    <div class="menu"> 
     {% for language in languages %} 
     <div class="item" data-value="{{language.code}}"> 
      <i class="{{language.code|flag_class}} flag"></i> 
     </div> 
     {% endfor %} 
    </div> 
    </div> 
</form> 

То, что я пытаюсь do устанавливает значение выпадающего меню с помощью jquery изначально и после этого присоединяет функцию к событию onChange.

JQuery

$("#lang_dropdown").dropdown('set selected', "{{LANGUAGE_CODE}}"); 

var flagChange = function(value, text, $choice){ 
    value = $("#lang_dropdown").dropdown('get value'); 
    if(value != "{{LANGUAGE_CODE}}"){ 
     $("#lang_input").val(value); 
     $("#lang_form").submit(); 
    } 
}; 
$("#lang_dropdown").dropdown({ 
    onChange: flagChange 
}); 

То, что происходит flagChange срабатывает, если раздаточная изначально установлено, что это не моя главная проблема, хотя почему-то выстреливает несмотря на то, был присоединен к OnChange ПОСЛЕ в первоначальное назначение ускользает от меня.

Основная проблема: flagChange не запускается после каждого щелчка по выпадающему меню и изменения выбранного значения.

+0

Можете ли вы попытаться использовать скрытый ввод внутри вашего '# lang_dropdown', который может удерживать выбранное значение? – Kamo

ответ

0

Вы можете проверить этот вопрос: https://github.com/Semantic-Org/Semantic-UI/issues/3744

Похоже, есть ошибка при добавлении OnChange обработчиков после создания первоначального списка. Попробуйте добавить обработчик изменений во время первоначального создания.

+0

Ваша ссылка кажется сломанной. – tirdadc

+3

Это чувство, когда вы google для этой проблемы, и оказывается, я был тем, кто сделал проблему на своем трекере ....: / –