Skip to content
Jony edited this page Jan 27, 2016 · 2 revisions

Use rules in the DOM

<input name="demo" data-rule="required;email;remote(/path/to/server)">

Use rules in the JS

$("#form").validator({
    fields: {
        demo: "required;email;remote(/path/to/server)"
    }
});

Define a rule in the DOM

data-rule-* = "[RegExp, 'errorMessage']"
<input name="demo" data-rule="required; xxx" data-rule-xxx="[/^\d{6}$/, 'Please enter 6 digits.']">

Define a rule in the JS

$("#form").validator({
    rules: {
        xxx: [/^\d{6}$/, 'Please enter 6 digits.']
    },
    fields: {
        demo: "required; xxx"
    }
});

Usage

"display: rule1;rule2(p1, p2); ...rulen(1~9)"
  1. The "display:" is optional and used to replace the "{0}" in an error message.
  2. Rule1~rulen representative rules, and each rule end up with a semicolon, only the last rule does not need a semicolon.
  3. Unlimited number of rules, the more forward more priority.
  4. If a rule is defined as passable parameters, then all parameters need to use parentheses "()" or brackets "[]";
  5. If there are multiple parameters, you will need to use the "comma + space" between each parameter separated

Delimiter

: The colon separate the display and rules.

<!-- the message is : "Username is required."  -->
<input name="foo" data-rule="Username: required;email" data-msg-required="{0} is required.">

; The semicolon separate multiple rules.

<input name="foo" data-rule="required;email;">

() The parentheses package all parameters of a rule. [] The brackets ditto

<input name="foo" data-rule="required;match(bar);">

, The comma separate multiple rule parameters.

<input name="foo" data-rule="required;match(gt, bar);">

~ The wave define a range.

<input name="foo" data-rule="required;range(1~99);">