# 表单校验
基于 async-validator
的表单验证,规则文档请查阅 https://github.com/yiminghe/async-validator (opens new window)
App | H5 | 微信小程序 | 支付宝小程序 | 头条小程序 |
---|---|---|---|---|
√ | √ | √ | √ | √ |
# Form Props
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
model | 表单数据对象 | object | ||
rules | 表单验证规则 | object | ||
border | 是否带边框 | boolean | false | |
disabled | 是否禁用 | boolean | false | |
show-message | 是否显示校验错误信息 | boolean | true | |
show-toast | 是否显示消息提示 | boolean | false | |
label-width | 表单域标签的宽度 | string | 150rpx | |
lael-position | 表单域标签的位置 | string | right / left / top | right |
# Form Methods
事件名称 | 说明 | 参数 |
---|---|---|
setRules | 设置规则 | Function(rules) |
validate | 对整个表单进行校验的方法 | Function(callback: Function(boolean, object)) |
validateField | 对部分表单字段进行校验的方法 | Function(props: string / array, callback: Function(errorMessage)) |
resetFields | 对整个表单进行重置 | |
clearValidate | 移除表单项的校验结果 | Function(props: string / array) |
# Form-item Props
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
prop | 表单字段名 | string | ||
label | 表单域标签 | string | ||
label-width | 表单域标签的宽度 | string | 150rpx | |
show-message | 是否显示校验错误信息 | boolean | true | |
justify | 水平排序 | string | start | end |
validate-on-value-change | 值改变时是否触发验证 | boolean | false |
WARNING
如果 rules 带有自定义验证方法 validator
, 请改用 setRules
的方式设置规则(在初始化中设置即可)
# 示例
<template>
<view>
<cl-form ref="form" :model.sync="form" :rules="rules" label-width="120rpx">
<cl-form-item prop="name" label="活动名称">
<cl-input v-model="form.name"></cl-input>
</cl-form-item>
</cl-form>
<cl-button type="success" @tap="onSubmit">提交</cl-button>
</view>
</template>
<script>
export default {
data() {
return {
rules: [
{
required: true,
message: "活动名称不能为空"
}
],
form: {
name: ""
}
};
},
methods: {
onSubmit() {
this.$refs["form"].validate(valid => {
if (valid) {
console.log("success");
}
});
}
}
};
</script>
← Rate 评分 Loadmore 加载更多 →