jquery select2插件正则表达式允许的字符?

时间:2014-02-06 01:58:43

标签: javascript jquery-select2

是否有为用户输入定义一组“允许”字符?对于例如仅限字母数字输入。似乎无法在官方文档中找到它

3 个答案:

答案 0 :(得分:3)

您可以使用createSearchChoice选项完成此操作,该选项允许您定义自定义函数以根据用户输入创建标记。要不允许包含除字母数字字符以外的标记,select2应初始化为:

$("#mySelect").select2({
            createSearchChoice: function(term) {
                if(term.match(/^[a-zA-Z0-9]+$/g))
                    return { id: term, text: term };
            },
            formatNoMatches: "Enter valid format text"})

如果用户正在键入包含非字母数字字符的文本,则select2下方的下拉列表将不显示匹配项。没有必要指定自定义formatNoMatches,但它对用户比默认的“找不到匹配”更有帮助,以找出他们的输入未被接受的原因。

<强>更新

从select2版本〜4.0开始,此函数现在称为createTag

答案 1 :(得分:0)

我没有找到任何关于在您键入的输入上放置掩码/正则表达式的信息。 但你可以在“开放”的情况下做到这一点。事件由select2提供。 像这样:

$('select of the select2 input or select').on('select2-open',function(e){
    // apply your mask on this element -> $('.select2-input')
});

希望它对你有所帮助。 再见

答案 2 :(得分:0)

今天我找到了一种在下拉列表中显示的输入上应用自定义蒙版的方法(select2 v3),我找到了这个主题。

在对official doc进行一些研究后,我看到了方法select2("container"),并查找了我找到select2("dropdown")的源代码(不在doc上)。

所以,我的最终代码是(出于贡献目的):

$('my-select2').on('select2-open',function(e){
    var input = $(this).select2("dropdown").find('.select2-input');
    // ...
});