无法使用 jquery 验证来验证特定帐号
Cannot Validate specific account number using jquery validation
我正在尝试验证帐号是否为 00000000 然后抛出验证错误,我需要一些帮助或指导,了解如何实现对特定数值的验证或限制用户输入 00000000?
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'
}
}
});
您可以使用名为 addMethod
的验证函数。
$.validator.addMethod('accountNumber', function (value) {
return !(/^0{8}$/.test(value));
}, 'Please enter a valid account.');
这里有一个fiddle例子
您需要 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>
我正在尝试验证帐号是否为 00000000 然后抛出验证错误,我需要一些帮助或指导,了解如何实现对特定数值的验证或限制用户输入 00000000?
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'
}
}
});
您可以使用名为 addMethod
的验证函数。
$.validator.addMethod('accountNumber', function (value) {
return !(/^0{8}$/.test(value));
}, 'Please enter a valid account.');
这里有一个fiddle例子
您需要 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>