无法使用 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>