2016-09-13 87 views
1

我想验证帐号是否为00000000,然后抛出验证错误,我需要一些帮助或方向,以了解如何实现特定数值的验证或限制用户输入00000000?无法使用jQuery验证验证特定帐号

jQuery.validator.addMethod("myRule", function (value, element, params) { 
     return this.optional(element) || value== params[0]; 
    }, "Account number 00000000 is invalid"); 

$('#myform').validate({ // initialize the plugin 
     submitHandler: function (form) { 
      console.log("Submitted!"); 
     }, 
     rules: { 
      accountNumber: { 
       required: true, 
       minlength: 8, 
       maxlength: 8, 

       /*MyRule solution found online but not working as expected any other option I could try within JQUERY Validator????*/ 

       myRule: ["00000000"], 
       digits: true 
       }, 
      companyNumber: { 
       required: true, 
       digits: true 

      } 
     }, 

     messages: { 
       accountNumber: { 
        digits: 'Account Number must be an number', 
        minlength: 'Account number cannot be less than 8 digits', 
        maxlength: 'Account number cannot be more than 8 digits', 
        required : 'Account number is required' 
       }, 
        companyNumber: { 
        digits: 'Company number must be a number', 
        required : 'Company number is required' 

       } 
     } 
    }); 
+0

你提到要验证帐号'000000'但你的规则是'00000000',有2个零 – depperm

+0

对不起我刚刚编辑并更正了我的问题,我的意思是00000000.一般来说,我如何验证或添加特定数值的规则,就像我的情况是00000000的帐号? – sam

回答

0

你需要value != params[0](不等于)是有效的。

见下文一个工作例如: -

jQuery.validator.addMethod("myRule", function(value, element, params) { 
 
    return this.optional(element) || value != params[0]; 
 
}, "Account number 00000000 is invalid"); 
 

 
$('#myform').validate({ // initialize the plugin 
 
    submitHandler: function(form) { 
 
    console.log("Submitted!"); 
 
    }, 
 
    rules: { 
 
    accountNumber: { 
 
     required: true, 
 
     minlength: 8, 
 
     maxlength: 8, 
 

 
     /*MyRule solution found online but not working as expected any other option I could try within JQUERY Validator????*/ 
 

 
     myRule: ["00000000"], 
 
     digits: true 
 
    }, 
 
    companyNumber: { 
 
     required: true, 
 
     digits: true 
 

 
    } 
 
    }, 
 

 
    messages: { 
 
    accountNumber: { 
 
     digits: 'Account Number must be an number', 
 
     minlength: 'Account number cannot be less than 8 digits', 
 
     maxlength: 'Account number cannot be more than 8 digits', 
 
     required: 'Account number is required' 
 
    }, 
 
    companyNumber: { 
 
     digits: 'Company number must be a number', 
 
     required: 'Company number is required' 
 

 
    } 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.1/jquery.validate.js"></script> 
 

 
<form id="myform"> 
 
    <input type="text" name="accountNumber" /> 
 
    <input type="text" name="companyNumber" /> 
 
    <input type="submit" value="submit"/> 
 
    </form>

+0

哎呀,这是一个愚蠢的错误..非常感谢你本,你救了我的一天:) – sam

-1

有一个验证功能,可以使用addMethod

$.validator.addMethod('accountNumber', function (value) { 
    return !(/^0{8}$/.test(value)); 
}, 'Please enter a valid account.'); 

这里是一个fiddle用一个例子