Validation Rules
Links
Basic Usage
import { required, email } from '@vue-formily/rules';
const schema = {
formId: 'email',
// Install requried and email rules with custom message
rules: [
{
...required,
message: 'This field is required.'
},
{
...email,
message: 'Invalid email.'
},
]
}
Localization
If I18n plugin was installed, you can pass the resource key to the message
field.
import { required, email } from '@vue-formily/rules';
const resource = {
validation: {
required: 'This field is required.'
}
}
const schema = {
formId: 'email',
rules: [
{
...required,
// The resource key
message: 'validation.required'
},
]
}
Properties
Some rules require one or more properties like min
, maxLength
... You can pass the relevant property by the props
like the example below:
import { minLength, maxLength } from '@vue-formily/rules';
const schema = {
formId: 'password',
rules: [
minLength,
maxLength
],
props; {
minLength: 1,
maxLength: 12
}
}
Apply Rule for Specific Types of Field
vue-formily allow you to apply rule only to specific types of fields. For example, email
rule should be applied to string
field only. To use this feature, just set the for
option to the rule.
import { email } from '@vue-formily/rules';
const schema = {
formId: 'password',
rules: [
{
...email,
// This accepts an array of field's types
for: ['string']
}
]
}
Cascade
Sometime you want a rule available to multiple form elements. In that case, you can use the cascade
option to that rule.
In this example, we want the maxLength
rule is avaliable to all sub-elements:
import { maxLength, email } from '@vue-formily/rules';
const schema = {
formId: 'login',
rules: [
// Becasue maxLength is supporting `cascade` by default,
// so we doesn't need to add `cascade` option. Otherwise,
// you need to do something like: { ...maxLength, cascade: true }
{
...maxLength,
message: 'validation.maxLength'
},
],
fields: [
{
// Now email will have maxLength rule
formId: 'email',
rules: [
email
],
props: {
maxLength: 12
}
}
]
}
Available Rules
Rule | For | Properties | Cascade | Description |
---|---|---|---|---|
string | Check valid email | |||
min | number | date | min | Check value must greater the min value (inclusive) | |
max | number | date | max | Check value must smaller the max value (inclusive) | |
minLength | string | enum | set | minLength | Check length of value must greater the minLength value (inclusive) | |
maxLength | string | enum | set | maxLength | Check length of value must smaller the maxLength value (inclusive) | |
numeric | string | Check value must be a number | ||
required | Check value must be provided |