今天用ant Design写了个修改密码的功能,随便记录一下

效果图

html代码

<div><a-modal v-model="visible" title="修改密码" on-ok="handleOk"><template slot="footer"><a-button key="back" @click="handleCancel">取消</a-button><a-button key="submit" type="primary" :loading="loading" :disabled="hasErrors(form.getFieldsError())" @click="handleOk">提交</a-button></template><!--      下面的表单用form 表单--><a-form :form="form" :label-col="{ span: 6 }" :wrapper-col="{ span: 12 }" @submit="handleSubmit"><a-form-item label="账号"><a-input size="large"placeholder="请输入账号"allow-clearv-decorator="['username',validatorRules.username]"><a-icon slot="prefix"type="user":style="{ color: 'rgba(0,0,0,.25)' }" /></a-input></a-form-item><a-form-item label="密码"><a-input-passwordsize="large"placeholder="请输入密码"allow-clearv-decorator="['password',validatorRules.password]"><a-icon slot="prefix"type="lock":style="{ color: 'rgba(0,0,0,.25)' }" /></a-input-password></a-form-item><a-form-item label="新密码"><a-input-passwordsize="large"placeholder="请输入新密码"allow-clearv-decorator="['newPassword1',validatorRules.newPassword1]"><a-icon slot="prefix"type="lock":style="{ color: 'rgba(0,0,0,.25)' }" /></a-input-password></a-form-item><a-form-item label="确认新密码"><a-input-passwordsize="large"placeholder="请输入新密码"allow-clearv-decorator="['newPassword2',validatorRules.newPassword2]"><a-icon slot="prefix"type="lock":style="{ color: 'rgba(0,0,0,.25)' }" /></a-input-password></a-form-item></a-form></a-modal></div>

js代码

export default {name: 'ModifyPassword',data() {return {loading: false,visible: false,form: this.$form.createForm(this),// 每个控件的验证规则validatorRules: {username: {rules: [{required: true, message: '请输入用户名!'}, {validator: this.validatePass,tirgger: 'change'}]},password: {rules: [{required: true, message: '请输入密码!'},{validator: this.validatePass,tirgger: 'change'}]},newPassword1: {rules: [{required: true, message: '请输新入密码!'},{validator: this.validatePass1,tirgger: 'change'}]},newPassword2: {rules: [{required: true, message: '请输新入密码!'},{validator: this.validatePass2,tirgger: 'change'}]},},};},methods: {handleSubmit(e) {console.log('这里')e.preventDefault();this.form.validateFields((err, values) => {if (!err) {console.log('Received values of form: ', values);}});},// 输入框长度验证方法validatePass(rule, value, callback){if (value.length<6 || value.length>12) {callback(new Error('长度应为6到12位'))}callback()},validatePass1(rule, value, callback){if (value.length<6 || value.length>12) {callback(new Error('长度应为6到12位'))}else// 验证新密码不能与旧密码一致if(this.form.getFieldValue('newPassword1')==this.form.getFieldValue('password')){callback(new Error('新密码不能与旧密码一致'))}callback()},validatePass2(rule, value, callback){// 验证输入长度if (value.length<6 || value.length>12) {callback(new Error('长度应为6到12位'))}else// 验证两次输入的新密码是否一致if(this.form.getFieldValue('newPassword1')!=this.form.getFieldValue('newPassword2')){callback(new Error('输入的新密码不一致'))}callback()},// 所有输入框正确输入提交按钮才能操作hasErrors(fieldsError) {return Object.keys(fieldsError).some(field => fieldsError[field]);},// 开启弹窗showModal() {this.visible = true;},// 关闭弹窗handleCancel(e) {console.log(e)this.visible = false;},// 提交更改密码操作(再这里面接口返回数据)handleOk(e) {console.log(e)this.loading = true;setTimeout(() => {this.visible = false;this.loading = false;}, 3000);},},
};

主要用到了几个表单属性,和几个api

form为一组控件,username  password  newPassword1 newPassword2这四个为单个控件被form包含

提交按钮处用到

form.getFieldsError() :获取一组输入控件的 Error ,如不传入参数,则获取全部组件的 Error

判断所有的输入框验证是否通过

validator 为自定义验证规则(有一些简单的规则可以用ant 自带的)

form.getFieldValue(‘控件名称’):获取一个输入控件的值

ant Design 表单以及表单验证相关推荐

  1. Ant Design of Vue +TS 表单动态增加数据验证卧坑姿势

    文章目录 Update 20210601 Update 20210525 原文: 1.a-form的model 2.获取数据 源码 Update 20210601 今天做别的页面的时候发现又取不到数据 ...

  2. ant design vue input change_vue 表单

    文档:https://cn.vuejs.org/v2/guide/forms.html#ad 基本用法 使用vue脚手架 安装Nodejs 安装yarn:https://yarn.bootcss.co ...

  3. react-hooks+Ant Design Mobile中的自定义表单验证

    Ant Design Mobile中的表单校验 将validator放在 rules 对象中 <Form.Itemname='uName'label='姓名'requiredrules={[{r ...

  4. Ant Design of Vue中a-form-model多行表单对齐和验证

    表单是前端人员不得不面对的一个组件,如何画的对齐好看,验证成功呢? 1.代码: (1)布局: html+css,当然肯定使用ant的组件 注意:单位我们放在suffix里面,如suffix=" ...

  5. 实现Ant Design 自定义表单组件

    Ant Design 组件提供了Input,InputNumber,Radio,Select,uplod等表单组件,但实际开发中这是不能满足需求,同时我们希望可以继续使用Form提供的验证和提示等方法 ...

  6. android 自定义表单,Android实现Ant Design 自定义表单组件

    Ant Design 组件提供了Input,InputNumber,Radio,Select,uplod等表单组件,但实际开发中这是不能满足需求,同时我们希望可以继续使用Form提供的验证和提示等方法 ...

  7. ant design form表单的时间处理

    ant design form表单的时间处理 用ant design开发程序时,会碰到时间的字段,效果如下: 那么该怎么处理呢? 可以在表单中使用如下代码: import { DatePicker } ...

  8. Vue 2.x折腾记 - (16) 基于Ant Design Vue 封装一个配置式的表单搜索组件

    前言 这次的后台管理系统项目选型用了Vue来作为主技术栈: 因为前段时间用过React来写过项目(用了antd),感觉棒棒的. 所以这次就排除了Element UI,而采用了Ant Design Vu ...

  9. Ant Design Vue 如何获form表单里数据 并给 v-decorator绑定的数据重新赋值

    最近在用ant design vue 做项目 遇到了 一下坑 比如 v-decorator 可以做数据 绑定 与v-model 不同的是 给 form 表单赋值 v-model 的值是 双向绑定的 如 ...

最新文章

  1. 花5分钟看这篇之前,你才发现你不懂RESTful
  2. SAP Spartacus ComponentData的提前subscription
  3. [你必须知道的.NET]第十五回:继承本质论
  4. java @Column 引发的一点思考
  5. 印象笔记打开错误_印象笔记新增桌面便签功能
  6. 使用nginx做反代时遇到413 Request Entity Too Large的解决方法
  7. jsp+servlet+jdbc实现对数据库的增删改查
  8. API章节--第四节包装类总结
  9. MFC中List控件
  10. PHP设置表格框线,ppt中表格边框线条怎样设置?
  11. 与其被生活逼,不如被自己逼
  12. CSUSTOJ-藤原千花不想知道数学成绩(数组及无数组解法)
  13. thymeleaf和Jsp或者HTML有什么区别
  14. html网页比赛演讲稿,故事大王比赛的演讲稿范文(精选5篇)
  15. java android 打地鼠_android实现打地鼠游戏
  16. 每日分享html之两个input搜索框、两个button按钮、一个logo效果
  17. linux内核vrrp配置,在Linux下的(VRRP)虚拟路由冗余协议介绍(转)
  18. 百度 凤巢 机器学习实习生面经
  19. MATLAB数值分析学习笔记:多项式拟合
  20. Booktrack Classroom(有声电子书)

热门文章

  1. Nexus上传jar问题【史上最全,亲测可用】
  2. 中国人民大学 计算机应用技术,中国人民大学计算机应用技术考研经验-人大信息学院考研辅导班...
  3. NSS: client certificate not found (nickname not specified)
  4. matlab图像算子变换,拉布拉斯算子锐化图像的空域和频域--matlab实现
  5. 2018上海居转户条件
  6. Android组件安全
  7. bim土建免费软件“为什么我选不到图元”6大图元讲解
  8. android path 画星星
  9. 汽车引擎布局概念介绍(前置/中置/后置引擎的由来)
  10. 详解vue生命周期(重点!!)