|
|
@@ -130,7 +130,10 @@ export default {
|
|
|
|
|
|
```html
|
|
|
<template>
|
|
|
-<nut-form :model-value="formData" ref="ruleForm">
|
|
|
+<nut-form :model-value="formData" :rules="{name: [{
|
|
|
+ message: 'Name should be at least two characters',
|
|
|
+ validator: nameLengthValidator
|
|
|
+ }]}" ref="ruleForm">
|
|
|
<nut-form-item label="Name" prop="name" required :rules="[{ required: true, message: 'Please enter your name' }]">
|
|
|
<input class="nut-input-text" @blur="customBlurValidate('name')" v-model="formData.name"
|
|
|
placeholder="Please enter , blur event validate" type="text" />
|
|
|
@@ -200,6 +203,7 @@ setup(){
|
|
|
const customRulePropValidator = (val: string, rule: FormItemRuleWithoutValidator) => {
|
|
|
return (rule?.reg as RegExp).test(val);
|
|
|
};
|
|
|
+ const nameLengthValidator = (val: string) => val?.length >= 2;
|
|
|
// Promise async validator
|
|
|
const asyncValidator = (val: string) => {
|
|
|
return new Promise((resolve) => {
|
|
|
@@ -210,7 +214,7 @@ setup(){
|
|
|
}, 1000);
|
|
|
});
|
|
|
};
|
|
|
- return { ruleForm, formData, validate, customValidator, customRulePropValidator, asyncValidator, customBlurValidate, submit, reset };
|
|
|
+ return { ruleForm, formData, validate, customValidator, customRulePropValidator, nameLengthValidator, asyncValidator, customBlurValidate, submit, reset };
|
|
|
}
|
|
|
}
|
|
|
</script>
|