我正在使用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 就不会被触发。
答案 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处理程序时,看起来有一个错误。尝试在初始创建期间添加更改处理程序。