编程语言
首页 > 编程语言> > javascript – JQuery Validation Plugin无法使用电子邮件类型吗?

javascript – JQuery Validation Plugin无法使用电子邮件类型吗?

作者:互联网

我已经配置了一个Grunt文件,用我所有的库和我的代码构建一个JS文件,所以我只有一个JS文件包含在我的网站中.这一切都运行正常,但我刚刚添加了JQuery Validate插件(http://jqueryvalidation.org/),这个插件工作但不完全,我认为它是我的代码以及我如何构建它的红色.

但我有多种形式,其中一种是更改用户电子邮件.我还应该在这里说我正在使用CakePHP和它的表单助手构建这个站点(尽管该站点的那一侧完全正常工作而没有任何错误).

这是我正在使用的代码:

 $( "#EmailChange" ).validate({
    rules: {
        'data[Email][currentemail]':{ 
            required: true,
            email: true
        },
        'data[Email][newemail]':{
            required: true,
            email: true
        },
        'data[Email][emailconfirm]': {
            equalTo: "#NewEmail", <-id for the [email][newemail] input
            required: true,
            email: true
        }
    },
    messages: {
        'data[EmailUpdate][currentemail]': "email address is needed",
        'data[EmailUpdate][newemail]': "a vaild email address is needed",
        'data[EmailUpdate][emailconfirm]': "second email does not match",
    }
}); 

现在这种方式有效,但是没有正确验证我的电子邮件地址,我会输入,someemail @ something,这将删除或返回有效的电子邮件,然后输入域名后缀.当我在自己的网站上使用电子邮件上的测试字段时,它不会这样做,它只会在用户输入后缀后返回有效状态.

那么我做错了什么?

谢谢.

解决方法:

使用以下代码发送电子邮件

jQuery.validator.addMethod("validEmail", function(value, element) 
{
    if(value == '') 
        return true;
    var temp1;
    temp1 = true;
    var ind = value.indexOf('@');
    var str2=value.substr(ind+1);
    var str3=str2.substr(0,str2.indexOf('.'));
    if(str3.lastIndexOf('-')==(str3.length-1)||(str3.indexOf('-')!=str3.lastIndexOf('-')))
        return false;
    var str1=value.substr(0,ind);
    if((str1.lastIndexOf('_')==(str1.length-1))||(str1.lastIndexOf('.')==(str1.length-1))||(str1.lastIndexOf('-')==(str1.length-1)))
        return false;
    str = /(^[a-zA-Z0-9]+[\._-]{0,1})+([a-zA-Z0-9]+[_]{0,1})*@([a-zA-Z0-9]+[-]{0,1})+(\.[a-zA-Z0-9]+)*(\.[a-zA-Z]{2,3})$/;
    temp1 = str.test(value);
    return temp1;
}, "Please enter valid email.");

在规则中使用以下

rules: {

    'data[Email][newemail]': {
        required: true,
        validEmail: true
    }
}

标签:jquery,javascript,jquery-validate
来源: https://codeday.me/bug/20190716/1477387.html