动态添加选项以选择多个JQuery插件

dan*_*rvt 7 javascript jquery javascript-events jquery-chosen

我想在选定的多个输入的文本字段中添加用户输入的文本作为选项,并自动选择它,当选项不存在时,所有这一切,如果选项存在,那么我想选择它.到目前为止,我已设法做到这一点:

Chosen.prototype.add_text_as_option = function () {
    $('#id_select').append(
        $('<option>')
                .html(this.search_field.val())
                .attr('selected', 'selected')
                .attr('value', 0)
    );
    $('#id_select').trigger("liszt:updated");
    return false;
};
Run Code Online (Sandbox Code Playgroud)

每当用户按下enter键时我都会调用此函数,而输入字段在keydown_check函数内是焦点.

我有两个问题:

  • 最高优先级,当用户按下Enter并键入选项的子字符串时,该选项将不会被选中,但子字符串文本将被添加和选择.不是我想要的.

例如:如果我有选项"foo",并开始输入"fo",则选择将第一个选项标记为候选("foo"),所以如果我按回车键,应该选择它,但相反,发生的是当我真正想要选择"foo"时,"fo"作为选项添加并被选中.

如果我点击选择"foo",那么一切正常.选择选项标记,子字符串文本作为选项的一部分.

如何在不丢失所有原始功能的情况下为选择添加不存在的选项?

  • 如何在所选插件中选择我选择的选择多个字段?正如您在上面的代码中看到的那样,select multiple字段的id是硬编码的.我想这样做是为了能够在用户添加新选项时刷新选择.

  • 我正在寻找的功能与linkedin的技能小部件非常相似

提前致谢!

Jak*_*itz 1

您应该尝试 select2 插件,它基于所选插件,但它可以很好地动态添加元素。

链接如下: http: //ivaynberg.github.com/select2/

查看自动标记化的示例,我认为这可能就是您正在寻找的。