File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11import Schema from '../common/async-validator/index' ;
22import validator from '../behaviors/validator' ;
3+
34/**
45 * @param tipType String [toast , message , text]
56 */
@@ -40,16 +41,16 @@ export default Behavior({
4041 } = this . data ;
4142 if ( ! rules ) return ;
4243 // 如果rule 是单个object
43- if ( Object . prototype . toString . call ( rules ) === '[object Object]' ) {
44+ if ( Object . prototype . toString . call ( rules ) === '[object Object]' ) {
4445 this . data . rules = [ rules ] ;
4546 }
4647
4748 this . data . rules . forEach ( item => {
48- if ( ! item . trigger ) {
49+ if ( ! item . trigger ) {
4950 item . trigger = [ ] ;
5051 return ;
5152 }
52- if ( typeof item . trigger === 'string' ) {
53+ if ( typeof item . trigger === 'string' ) {
5354 item . trigger = [ item . trigger ] ;
5455 return ;
5556 }
@@ -69,7 +70,7 @@ export default Behavior({
6970
7071 const list = type ? rules . filter ( item => {
7172 return item . trigger . indexOf ( type ) > - 1 ;
72- } ) : rules ;
73+ } ) : rules ;
7374 const schema = new Schema ( {
7475 [ rulesName ] : list ,
7576 } ) ;
@@ -88,6 +89,14 @@ export default Behavior({
8889
8990 if ( ! rules ) return ;
9091
92+ // 把空字符串设置为 undefined ,见 issue 856
93+ // async-validator 对空字符串会进行类型检查,与required会冲突
94+ Object . getOwnPropertyNames ( value ) . forEach ( ( key ) => {
95+ if ( value [ key ] === '' ) {
96+ value [ key ] = undefined
97+ }
98+ } )
99+
91100 this . data . schema . validate ( value , ( errors ) => {
92101 this . setData ( {
93102 errors : errors || [ ]
You can’t perform that action at this time.
0 commit comments