在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:react-validate-framework开源软件地址:https://gitee.com/MinJieLiu/react-validate-framework开源软件介绍:react-validate-framework一个轻量、简单、易用的 Demo: https://minjieliu.github.io/react-validate-framework 特性
开始使用npm i react-validate-framework --save 引入: import formConnect, { Checkbox, Radio, Select, Text, Textarea, Message,} from 'react-validate-framework'; 验证规则像这样: const schemas = { email: { rules: 'required | isEmail | maxLength(32) | validateFromServer', messages: '不能为空 | 请输入有效的电子邮件地址 | 不能超过{{param}}个字符 | 邮箱被占用', }, hobby: { rules: 'requiredField(email) | selectLimit(2)', messages: '邮件和爱好至少填写一项 | 至少选择{{param}}项', },};const methods = { selectLimit(field, param) { if (Array.isArray(field.value)) { return field.value.length >= param; } return false; }, requiredField(field, param) { const otherField = this.fields[param]; return this.required(field) || (otherField.result && this.required(otherField)); }, async validateFromServer(field, param) { return await doServerAPI(); },};
表单: @formConnect(schemas, methods)export default class BasicForm extends React.Component { static propTypes = { formControl: PropTypes.object, }; constructor(props) { super(props); props.formControl.init({ email: '', phone: '', }, { static: 'form-control', success: 'valid-success', error: 'valid-error', }); } handleSubmit = async () => { const { formControl } = this.props; if (await formControl.validate()) { // Submit. } }; render() { return ( <div className="form-group"> <Text name="email" placeholder="Please input your email" delay={100} // Asynchronous validation /> <Message className="valid-error-message" name="email" /> <Text name="phone" /> <button onClick={this.handleSubmit}>提交</button> </div> ); }} 基础验证方法可以参考 validate-framework-utils 表单组件
表单域 当然,你也可以使用自定义的表单受控组件,只需指定 const { formControl: { fields, onFormChange, },} = this.props;return ( <input className={fields.email.className} name="email" type="text" onChange={onFormChange} value={fields.email.value} placeholder="请输入电子邮件" />); APIForm params
更新日志0.15.x
|
请发表评论