微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我已经在这个工作了几个小时了,似乎无法使它工作.
我在客户端部分需要多个电子邮件,位于相同的输入字段中.

现在我有(适用于一封电子邮件):

<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">

我发现这应该让多个验证器工作:

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个或更多电子邮件吗?

提前致谢.

(已编辑以在规则和消息中添加多重邮件)
(用下面的解决方案编辑)

<form>
    <input id='emailTest' name='emailTest' />
    <input type='submit' />
</form>
    <script type="text/javascript">
    jQuery.validator.addMethod(
    "multiemail",element) {
        var email = value.split(/[;,and ;
        valid = true;
        for (var i in email) {
            value = email[i];
            valid = valid && jQuery.validator.methods.email.call(this,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;
        }
});

解决方法

我认为代码中存在一些语义错误导致一些你不期望的事情发生.

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

rules: {
    emailTest: {
        multiemail: true
    }
}

同样在处理程序中,您有多个邮件作为标识符,稍后将其称为多邮件,不确定有多大的影响.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐