jQuery验证插件调试新的附加方法

时间:2018-12-16 19:50:15

标签: jquery jquery-validate

我正在尝试弄清为什么即使用户按照称为checkDomain的其他方法使用gmail.com电子邮件地址,仍然可以提交我们的表单。

我想实时地看到我们在什么时候是真实的,在什么时候是错误的,因为这应该清除它,但是我在如何console.log的价值上有空白。我们该怎么做?

$.validator.addMethod('checkDomain', function (value) { 
    return /^([\w-.]+@(?!gmail\.com)(?!yahoo\.com)(?!hotmail\.com)([\w-]+.)+[\w-]{2,4})?$/.test(value);
}, 'Please provide a business email.');

/*-----------------------------------------------------*/
/*-----------------------------------------------------*/


$(formId).validate({
    rules: {
        FirstName: "required",
        LastName: "required",
        Company: "required",
        Primary_Interest__c: "required",
        Company_Size__c: "required",
        Phone: "required",
        Email: {
            required: true,
            email: true,
            checkDomain: true
        },
        MktoCompanyNotes: "required"
        console.log(checkDomain);
   },

1 个答案:

答案 0 :(得分:0)

rules对象应仅包含key:value对,这些对代表字段名称和带有参数的相应规则。您不能只在其中粘贴一行JavaScript,而不能指望事情会破裂。

  

我在如何console.log我们的价值上处于空白。我们该怎么做?

您是否尝试过在函数本身中执行此操作,该函数本身已包含字段的值?

$.validator.addMethod('checkDomain', function (value) { 
    console.log(value); // <- HERE
    return /^([\w-.]+@(?!gmail\.com)(?!yahoo\.com)(?!hotmail\.com)([\w-]+.)+[\w-]{2,4})?$/.test(value);
}, 'Please provide a business email.');

您的自定义规则似乎运行良好:

演示:jsfiddle.net/7hvxe9gd/