<cn> #### 校验其他组件 以上演示没有出现的表单控件对应的校验演示。 </cn> <us> #### Other Form Controls Demostration for validataion configuration for form controls which are not show in the above demos. </us> <template> <a-form id='components-form-demo-validate-other' @submit="handleSubmit" :form="form"> <a-form-item v-bind="formItemLayout" label='Plain Text' > <span class='ant-form-text'>China</span> </a-form-item> <a-form-item v-bind="formItemLayout" label='Select' hasFeedback > <a-select v-decorator="[ 'select', {rules: [{ required: true, message: 'Please select your country!' }]} ]" placeholder='Please select a country' > <a-select-option value='china'>China</a-select-option> <a-select-option value='usa'>U.S.A</a-select-option> </a-select> </a-form-item> <a-form-item v-bind="formItemLayout" label='Select[multiple]' > <a-select v-decorator="[ 'select-multiple', { rules: [{ required: true, message: 'Please select your favourite colors!', type: 'array' }], }]" mode='multiple' placeholder='Please select favourite colors' > <a-select-option value='red'>Red</a-select-option> <a-select-option value='green'>Green</a-select-option> <a-select-option value='blue'>Blue</a-select-option> </a-select> </a-form-item> <a-form-item v-bind="formItemLayout" label='InputNumber' > <a-input-number v-decorator="['input-number', { initialValue: 3 }]" :min="1" :max="10" /> <span class='ant-form-text'> machines</span> </a-form-item> <a-form-item v-bind="formItemLayout" label='Switch' > <a-switch v-decorator="['switch', { valuePropName: 'checked' }]"/> </a-form-item> <a-form-item v-bind="formItemLayout" label='Slider' > <a-slider v-decorator="['slider']" :marks="{ 0: 'A', 20: 'B', 40: 'C', 60: 'D', 80: 'E', 100: 'F' }" /> </a-form-item> <a-form-item v-bind="formItemLayout" label='Radio.Group' > <a-radio-group v-decorator="['radio-group']"> <a-radio value='a'>item 1</a-radio> <a-radio value='b'>item 2</a-radio> <a-radio value='c'>item 3</a-radio> </a-radio-group> </a-form-item> <a-form-item v-bind="formItemLayout" label='Radio.Button' > <a-radio-group v-decorator="['radio-button']"> <a-radio-button value='a'>item 1</a-radio-button> <a-radio-button value='b'>item 2</a-radio-button> <a-radio-button value='c'>item 3</a-radio-button> </a-radio-group> </a-form-item> <a-form-item v-bind="formItemLayout" label='Rate' > <a-rate allowHalf v-decorator="['rate', {initialValue: 3.5}]"/> </a-form-item> <a-form-item v-bind="formItemLayout" label='Upload' extra='longgggggggggggggggggggggggggggggggggg' > <a-upload v-decorator="['upload', { valuePropName: 'fileList', getValueFromEvent: normFile, }]" name='logo' action='/upload.do' listType='picture' > <a-button> <a-icon type='upload' /> Click to upload </a-button> </a-upload> </a-form-item> <a-form-item v-bind="formItemLayout" label='Dragger' > <div class='dropbox'> <a-upload-dragger v-decorator="['dragger', { valuePropName: 'fileList', getValueFromEvent: normFile, }]" name='files' action='/upload.do' > <p class='ant-upload-drag-icon'> <a-icon type='inbox' /> </p> <p class='ant-upload-text'>Click or drag file to this area to upload</p> <p class='ant-upload-hint'>Support for a single or bulk upload.</p> </a-upload-dragger> </div> </a-form-item> <a-form-item :wrapperCol="{ span: 12, offset: 6 }" > <a-button type='primary' htmlType='submit'>Submit</a-button> </a-form-item> </a-form> </template> <script> export default { beforeCreate () { window.test = this this.form = this.$form.createForm(this) }, data: () => ({ formItemLayout: { labelCol: { span: 6 }, wrapperCol: { span: 14 }, }, }), methods: { handleSubmit (e) { e.preventDefault() this.form.validateFields((err, values) => { if (!err) { console.log('Received values of form: ', values) } }) }, normFile (e) { console.log('Upload event:', e) if (Array.isArray(e)) { return e } return e && e.fileList }, }, } </script> <style> #components-form-demo-validate-other .dropbox { height: 180px; line-height: 1.5; } </style>