将select2限制为仅接受电子邮件地址

sha*_*bda 2 javascript jquery jquery-select2

我有一个select2框,我是限制这个只接受电子邮件地址.

我试图通过编写自定义formatSelection函数来做到这一点

formatSelection: function(object, container){
        if(validateEmail(object.text)){
            return object.text;
        }
        else{
            return "";
        }
    }
Run Code Online (Sandbox Code Playgroud)

我期待返回一个空字符串就足以不显示此输入select2,但我得到一个空结果.

Sag*_*gi 8

从select2 4.0 +开始,只需使用该createTag功能:

createTag: function(term, data) {
    var value = term.term;
    if(validateEmail(value)) {
        return {
          id: value,
          text: value
        };
    }
    return null;            
}

function validateEmail(email) {
    var re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}
Run Code Online (Sandbox Code Playgroud)