jquery表单邮箱字段输入支持逗号分隔生成列表

所属分类: 网页特效-丰富的输入    2023-11-01 01:39:49

jquery表单邮箱字段输入支持逗号分隔生成列表 ie兼容6
反馈问题  查看演示  登录后下载 温馨提示
登录会员即可享受免费下载
 我要建站

jquery表单邮箱字段输入支持逗号分隔生成列表(共3个文件)

    • index.html

使用方法

(function($){
    $.fn.multiEmails = function(options) {
        var settings = $.extend({
            color: "#343a40",
            textColor: "#000000",
            fontAwesome: false,
        }, options );

            var keynum;
            var emailList = [];
            var hiddenField = $(this);
            const 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,}))$/;

            $(this)
            .after(
                '<input type="text" class="'+hiddenField.attr("class")+'" id="email">'
                ).hide()/*.before(
                    '<span class="email-format">Emails be must sepereted by a comma character (,)</span>'
                    )*/;
    
            function uniqueEmails(emails) {
                let uniqueEmails = [];
                $.each(emailList, function(i, el){
                    if($.inArray(el, uniqueEmails) === -1) uniqueEmails.push(el);
                });
    
                return uniqueEmails;
            }
            
            $(document).on('keyup', '#email', function(e) {
                $('.email-error').remove();
                if(window.event){ // IE
                    keynum = e.keyCode;
                }
                else if(e.which){ // Netscape/Firefox/Opera
                    keynum = e.which;
                }
                if (keynum == 188){
                    
                    let email = $('#email').val().replace(',','');
                    if (re.test(String(email).toLowerCase())){
                        emailList.push(email);
                        let displayList = '';
                        
                        uniqueEmails(emailList).forEach((value, ind) => {
                            displayList += "<li style='background-color:"+hexToRgbA(settings.color)+";border-left: 3px solid"+settings.color+"'>"+value+"<span class='float-right remove' data-index="+ind+">"+((settings.fontAwesome === true)?'<i class=\"fas fa-times\"></i>':'X')+"</span></li>"
                        } )
                        let buildEmailList = '<div id="show-emails"><ul style="color:'+settings.textColor+'">'+displayList+'</ul></div>'
                        if($("#show-emails").length){
                            $("#show-emails").replaceWith(buildEmailList);
                        }else{
                            $('#email').parent().after(buildEmailList);
                        }
                        hiddenField.val(JSON.stringify(uniqueEmails(emailList)));
                        $('#email').val('');
                    }else{
                        let errrMessage = "<div class='email-error'>Please enter a valid email address</div>";
                        if($("#show-emails").length){
                            $("#show-emails").after(errrMessage);
                        }else{
                            $('#email').parent().after(errrMessage);
                            console.log($('#email').parent());
                        }
                    }
                }
            })

            $(document).on('click', ".remove", function () {
                let index = $(this).data("index");
                emailList.splice(index, 1);
                let displayList = '';
                uniqueEmails(emailList).forEach((value, ind) => {
                    displayList += "<li style='background-color:"+hexToRgbA(settings.color)+";border-left: 3px solid"+settings.color+"'>"+value+"<span class='float-right remove' data-index="+ind+">"+((settings.fontAwesome === true)?'<i class=\"fas fa-times\"></i>':'X')+"</span></li>"
                } )
                hiddenField.val(uniqueEmails(emailList));
                $("#show-emails ul").html(displayList);
            })

            function hexToRgbA(hex){
                var c;
                if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){
                    c= hex.substring(1).split('');
                    if(c.length== 3){
                        c= [c[0], c[0], c[1], c[1], c[2], c[2]];
                    }
                    c= '0x'+c.join('');
                    return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+',0.08)';
                }
                throw new Error('Bad Hex');
            }
     
    };
}(jQuery))

站长提示:
1. 平台上所有素材资源,需注册登录会员方能正常下载。
2. 会员用户积极反馈网站、素材资源BUG或错误问题,每次奖励20K币
3. PHP源码类素材,如需协助安装调试,或你有二次开发需求,可联系苦力吧客服。
4. 付费素材资源,需充值后方能下载,如有任何疑问可直接联系苦力吧客服
相关资源 / 丰富的输入

bootstrap响应式input自动跳格连续输入特效代码

一款数字验证码输入特效,6位数的数字输入密码并进行验证,当用户输入一个数字后,鼠标光标自动跳动到下一个文本框中,以此类推,非常的实用。
  丰富的输入
 100  

jquery手机端弹出车牌号选择特效代码

一款运用于手机端的车牌号选择器,点击后在屏幕下方弹出“键盘”,很实用!
  丰富的输入
 124  

jquery文本框输入转换成tag标签插件

amsify.suggestags是一个简单的jQuery标记/文本文字输入插件,它将常规input文本框输入字符转换为多选、自动提示的标签标记文本。
  丰富的输入
 147  

jquery表单Email字段输入提示自动完成插件

一款Email邮箱输入提示插件,在键入@时,通过更正输入错误和在工具提示中提供正确显示,可帮助用户更快的输入Email地址。
  丰富的输入
 127  

评论数(0) 回复有机会获得K币 用户协议

^_^ 还没有人评论,快来抢个沙发!
😀
  • 😀
  • 😊
  • 😂
  • 😍
  • 😑
  • 😷
  • 😵
  • 😛
  • 😣
  • 😱
  • 😋
  • 😎
  • 😵
  • 😕
  • 😶
  • 😚
  • 😜
  • 😭
发表评论