我正在使用所选的Koenpunt's fork,这允许我在配置对象中使用“create_option”选项。
它为用户提供了一种巧妙的方法,可以在选择框中找不到元素。
现在它的工作原理是让用户点击框中显示的“创建新事物”链接,但我希望它能自动创建这些新选项。这可能吗?我应该触发一个事件吗?
答案 0 :(得分:5)
根据我的理解,
Chosen.jquery.js
分叉才有此功能。让我保持简单,通过关键事件触发添加选项链接(例如:输入密钥)会更好。经过多次尝试,我找到了来自chosen.js
Chosen.prototype.keydown_checker = function(evt){
...
...
}
在初始化jQuery
和 Koenpunt的分叉 Chosen.js
<script type="text/javascript">
Chosen.prototype.keydown_checker = function(evt) {
if( event.which === 13) {
$(this.form_field).append('<option>' + $(evt.target).val() + '</option>');
$(this.form_field).trigger('liszt:updated');
this.result_highlight = this.search_results.find('li.active-result').last();
return this.result_select(evt);
}
}
</script>
我正在尝试创建一个JSFiddle,希望能得到它。
EDIT1:我在JSFIDDLE1
获得了它 EDIT2 :在尝试为onBlur()
寻找方法时,我获得了以下opt方法
AbstractChosen.prototype.input_blur = function(evt){
...
...
}
上述代码几乎没有变化:
AbstractChosen.prototype.input_blur = function(evt) {
$(this.form_field).append('<option>' + $(evt.target).val() + '</option>');
$(this.form_field).trigger('liszt:updated');
this.result_highlight = this.search_results.find('li.active-result').last();
return this.result_select(evt);
}
对应JSFiddle2希望你能找到两个小提琴的差异。
答案 1 :(得分:4)
我建议您查看selectize.js,它具有您正在寻找的确切功能(即创建模糊选项)。
Select2也是另一种选择,它也具有您期望的相同标记功能(请参阅演示底部的“标记支持”部分)。
编辑:添加了Select2