semantic-ui dropdown的onChange没有触发

时间:2015-04-30 08:19:18

标签: jquery django semantic-ui

我正在使用semantic-ui和Django,我在表单中有以下下拉列表:

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>

我要做的是最初通过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 AFTER 的原因会触发任务逃脱了我。

主要问题是,每当我点击下拉列表并更改所选值时, flagChange 就不会被触发。

2 个答案:

答案 0 :(得分:0)

您应该使用下拉列表的<select> <option>版本:http://semantic-ui.com/modules/dropdown.html#converting-form-elements

我不知道Semantic-UI如何处理这个事件,但是我不知道这个变化是什么? event是一个基本的html / js,只触发那种元素。

答案 1 :(得分:0)

您可能想查看此问题:https://github.com/Semantic-Org/Semantic-UI/issues/3744

在初始下拉列表创建后添加onChange处理程序时,看起来有一个错误。尝试在初始创建期间添加更改处理程序。