Skip to content

Commit da05ce2

Browse files
September-9hazel54
authored andcommitted
hotfix #902 表单验证trigger生效出错
1 parent 4099e32 commit da05ce2

File tree

4 files changed

+11
-16
lines changed

4 files changed

+11
-16
lines changed

site/docs/en-US/form.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ constructor(props) {
383383
} else {
384384
callback();
385385
}
386-
} }
386+
} , trigger: 'blur'}
387387
],
388388
age: [
389389
{ required: true, message: 'Please input the age', trigger: 'blur' },

site/docs/zh-CN/form.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ constructor(props) {
381381
} else {
382382
callback();
383383
}
384-
} }
384+
} , trigger: 'blur'}
385385
],
386386
age: [
387387
{ required: true, message: '请填写年龄', trigger: 'blur' },

src/form/Form.jsx

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,6 @@ export default class Form extends Component {
1818
}
1919
}
2020

21-
componentDidUpdate(newProps: Object): void {
22-
const {model} = newProps
23-
const oldModel = this.props.model
24-
if (!model) return
25-
const diff = Object.keys(model).filter(key => model[key] !== oldModel[key])
26-
if (diff.length) {
27-
this.state.fields.filter(({props}) => props.prop.match(diff))
28-
.map(field => field.validate('', () => undefined));
29-
}
30-
}
31-
3221
getChildContext(): { component: Form } {
3322
return {
3423
component: this

src/form/FormItem.jsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,10 @@ export default class FormItem extends Component {
7575

7676
return;
7777
}
78-
78+
7979
setTimeout(() => {
8080
this.validate('change');
81+
8182
});
8283
}
8384

@@ -152,8 +153,13 @@ export default class FormItem extends Component {
152153
const rules = this.getRules();
153154

154155
return rules.filter(rule => {
155-
return !rule.trigger || rule.trigger.indexOf(trigger) !== -1;
156-
});
156+
if (!rule.trigger || trigger === '') return true;
157+
if (Array.isArray(rule.trigger)) {
158+
return rule.trigger.indexOf(trigger) > -1;
159+
} else {
160+
return rule.trigger === trigger;
161+
}
162+
}).map(rule => Object.assign({}, rule));
157163
}
158164

159165
labelStyle(): { width?: number | string } {

0 commit comments

Comments
 (0)