首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery验证文本输入中的2+ (多个)电子邮件

jQuery验证文本输入中的2+ (多个)电子邮件
EN

Stack Overflow用户
提问于 2013-07-29 23:25:30
回答 1查看 9.2K关注 0票数 6

我已经在这上面工作了几个小时了,但似乎不能让它工作。我需要一个以上的电子邮件在我们的客户部分,在同一个输入字段。

现在我有(这对一封电子邮件很有效):

代码语言:javascript
运行
复制
<script language="JavaScript">
$(document).ready(function(){
    $("form#editclient").validate({
            rules: {
            Contact: {
                required: true
            },
            Clientname: {
                required: true
            },
            ClientLogin: {
                required: true
            },
            ClientPassword: {
                required: true
            },
            email: {
                required: true,
                multiemail: true
            }
        },
        messages: {
            Contact: {
                required: "Please enter your Contact Nmae."
            },
            Clientname: {
                required: "Please enter your Client Name"
            },
            ClientLogin: {
                required: "Please enter a login."
            },
            ClientPassword: {
                required: "Please enter a password"
            },
            email: {
                required: "Please enter an Email Address",
                multiemail: "You must enter a valid email, or comma separate multiple"
            }
        }
});
});
</script>
    <input type="Text" id="email" name="Email" value="#Trim(Email)#" maxlength="60" class="inputText430 email required">

我发现了这个可以让多个验证器工作的东西:

代码语言:javascript
运行
复制
jQuery.validator.addMethod(
"multiemails",

function (value, element) {
    if (this.optional(element)) // return true on optional element
    return true;
    var email = value.split(/[;,]+/); // split element by , and ;
    valid = true;
    for (var i in email) {
        value = email[i];
        valid = valid && jQuery.validator.methods.email.call(this, $.trim(value), element);
    }
    return valid;
},

jQuery.validator.messages.multiemail);

但是我不能让它正常工作。有人能帮我获得在一个文本字段中验证2个或更多电子邮件的能力吗?

提前谢谢。

(编辑以在规则和消息中添加多电子邮件)(使用下面的解决方案进行编辑)解决方案

代码语言:javascript
运行
复制
<form>
    <input id='emailTest' name='emailTest' />
    <input type='submit' />
</form>
    <script type="text/javascript">
    jQuery.validator.addMethod(
    "multiemail",
    function (value, element) {
        var email = value.split(/[;,]+/); // split element by , and ;
        valid = true;
        for (var i in email) {
            value = email[i];
            valid = valid && jQuery.validator.methods.email.call(this, $.trim(value), element);
        }
        return valid;
    },
    jQuery.validator.messages.multiemail
);

$("form").validate({
    debug: true,
    rules: {
            emailTest: {
                multiemail: true
            }
        },
    messages: {
            emailTest: {
                multiemail: "You must enter a valid email, or comma separate multiple"
            }
        },
    submitHandler: function(form) {
            return false;
        }
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-30 07:02:45

我认为代码中有一些语义错误,这会导致一些你意想不到的事情发生。

我已经设法让你的自定义处理程序按名称而不是按类型映射到字段-我不确定覆盖在插件中是否有效。

代码语言:javascript
运行
复制
rules: {
    emailTest: {
        multiemail: true
    }
}

另外,在处理程序中,您将multiemails作为标识符,并在稍后将其称为multiemail,但不确定这会产生多大影响。

下面是完整的工作示例:http://jsfiddle.net/jbergler/7jXn7/2/

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17927971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档