如何在选定的插件中创建onblur的"创建选项"功能?

Adi*_*M P 4 jquery jquery-chosen

我正在使用Koenpunt选择的fork,它允许我在config对象中使用"create_option"选项.

它为用户在选择框中不可用时创建元素提供了一种简洁的方法.

现在它的工作原理是让用户点击框中显示的"创建新事物"链接,但我希望它能自动创建这些新选项.这可能吗?我应该触发一个事件吗?

Pra*_*een 5

据我了解,

  1. 您正尝试在SearchBox中键入选项时动态添加选项.
  2. Koenpunt的fork Chosen.jquery.js只有通过单击Add Option链接才具有此功能.

让我保持简单,通过键事件触发添加选项链接(例如:输入键)会更好.经过多次尝试,我找到了opt方法chosen.js

Chosen.prototype.keydown_checker = function(evt){
...
...
}
Run Code Online (Sandbox Code Playgroud)

在你的HTML文件中添加以下脚本intializing后jQueryKoenpunt的叉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>
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个JSFiddle,希望能得到它.

EDIT1:Atlast我在JSFIDDLE1中得到了它

EDIT2:在尝试寻找方法时onBlur(),我得到了以下opt方法

AbstractChosen.prototype.input_blur = function(evt){
...
...
}
Run Code Online (Sandbox Code Playgroud)

上述代码变化不大:

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);
    }
Run Code Online (Sandbox Code Playgroud)

相应的JSFiddle2 希望你能找到两个小提琴的差异.