async-validator icon indicating copy to clipboard operation
async-validator copied to clipboard

请问下数组里面的对象属性怎样做校验

Open javisChen opened this issue 6 years ago • 10 comments

在数组里面的对象属性校验出异常,实际上是绑定成功的了,但是无法通过校验,代码如下: image

谢谢!

javisChen avatar Jun 13 '18 01:06 javisChen

rules里的type使用array试下

zarte avatar Jul 03 '18 03:07 zarte

rules:{ type:'object', required:true, fields:{ filedLabel:[ ... ] } }

校验字段 为 modelMetadataConfig[index],index 为数组索引

TELstatic avatar Jan 31 '19 06:01 TELstatic

@TELstatic 你这段html端如何写? 因为每个field可能对应一个FormItem

williambao avatar May 05 '19 14:05 williambao

@TELstatic 你这段html端如何写? 因为每个field可能对应一个FormItem

image

参考图片

TELstatic avatar May 06 '19 07:05 TELstatic

@williambao

<FormItem v-for="(item, index) in form.items" :key="index" :label="'单品 ' + (index+1) " :prop="'items.' + index" :rules="rules.item"> <Row :gutter="10"> <Col span="2"> <Poptip trigger="focus"> <Input type="text" v-model="item.module" placeholder="请输入型号"></Input> <div slot="content">{{ formatText(item.module) }}</div> </Poptip> </Col> <Col span="2"> <Poptip trigger="focus"> <Input type="text" v-model="item.standard" placeholder="请输入规格"></Input> <div slot="content">{{ formatText(item.standard) }}</div> </Poptip> </Col>

TELstatic avatar May 06 '19 07:05 TELstatic

items: [{ type: 'array', required: true, defaultField: { type: "object", required: true, fields: { name: [{ type: 'string', required: true, message: 'name is required', trigger: 'change' }], weight: [{ type: 'string', required: true, message: 'weight is required', trigger: 'blur' }] } } }]

zx1001011 avatar Dec 09 '20 02:12 zx1001011

rules:{ type:'object', required:true, fields:{ filedLabel:[ ... ] } }

校验字段 为 modelMetadataConfig[index],index 为数组索引

rules:{ type:'object', required:true, fields:{ filedLabel:[ ... ] } }

校验字段 为 modelMetadataConfig[index],index 为数组索引

如果type是数组呢 验证的字段是数组下的每项对象中的字段

curryhh avatar May 24 '21 15:05 curryhh

嵌套对象验证规则怎么写?,比如要验证c属性: { a: { b: { c: 'ccc' } } }

J1angyue avatar Nov 08 '22 14:11 J1angyue

items: [{ type: 'array', required: true, defaultField: { type: "object", required: true, fields: { name: [{ type: 'string', required: true, message: 'name is required', trigger: 'change' }], weight: [{ type: 'string', required: true, message: 'weight is required', trigger: 'blur' }] } } }]

It works!

const data = [{},{}];

const descriptor = {items: [{ type: 'array', required: true, defaultField: { type: "object", required: true, fields: { name: [{ type: 'string', required: true, message: 'name is required', trigger: 'change' }], weight: [{ type: 'string', required: true, message: 'weight is required', trigger: 'blur' }] } } }]}

const validator = new Schema(descriptor);

validator({ item: data });

chiaweilee avatar Dec 06 '22 05:12 chiaweilee

请问是否支持 这样的嵌套path定义?

const rules = {
  'a.b.c': [
    { required: true, message: 'a.b.c is required' },
    { type: 'string', message: 'a.b.c must be a string' },
  ],
};

const data = {
	a: {
		b: {
			c: '123'
		}
	}
}

BoBoooooo avatar Mar 20 '23 07:03 BoBoooooo