在网上查找说是加this.$forceUpdate()

   <el-form-item :label="$t('table.password')" prop="password"><el-input v-model="userData.password" :disabled="updateStatus" @input="change($even)" /></el-form-item><el-form-item :label="$t('table.validPwd')" prop="validPwd"><el-input v-model="userData.validPwd" :disabled="updateStatus" /></el-form-item>// 写方法
change(e){this.$forceUpdate()
}

但是加完以后输入框校验出问题。问题肯定出在传值:

原始代码:

<template><el-formref="editFormRef":model="userData":rules="editFormRules"><el-form-item :label="$t('table.username')"><el-input v-model="userData.login" disabled /></el-form-item><el-form-item :label="$t('table.email')" prop="email"><el-input v-model="userData.email" :disabled="updateStatus" /></el-form-item><el-form-item :label="$t('table.firstName')"><el-input v-model="userData.firstName" :disabled="updateStatus" /></el-form-item><el-form-item :label="$t('table.lastName')"><el-input v-model="userData.lastName" :disabled="updateStatus" /></el-form-item><el-form-item :label="$t('table.password')" prop="password"><el-input v-model="userData.password" :disabled="updateStatus" /></el-form-item><el-form-item :label="$t('table.validPwd')" prop="validPwd"><el-input v-model="userData.validPwd" :disabled="updateStatus" /></el-form-item><el-form-item><el-button v-if="updateStatus" type="primary" @click="changeUpdateStatus">{{ $t('table.edit') }}</el-button><el-button v-if="!updateStatus" @click="editDialogCancle">{{ $t('table.cancel') }}</el-button><el-button v-if="!updateStatus" type="primary" @click="editUserInfo">{{ $t('table.submit') }}</el-button></el-form-item></el-form>
</template><script>
import { passwordValid, emailValid, notNullValid } from '@/utils/validate'
import { updateUser, getUserByName } from '@/api/user'
export default {props: {user: {type: Object,default: () => {return {name: '',avatar: '',role: ''}}}},data() {const validatePass = (rule, value, callback) => {if (this.userData.validPwd !== this.userData.password) {callback(new Error('两次输入密码不一致!'))} else {callback()}}return {userData: {password: '',validPwd: ''},updateStatus: true,editFormRules: {email: emailValid,password: passwordValid,validPwd: [{ validator: validatePass, trigger: 'blur' }],role: notNullValid}}},mounted() {this.getUser()},methods: {async getUser() {this.userData = await getUserByName(this.user.name)this.userData.password = ''this.userData.validPwd = ''},changeUpdateStatus() {this.updateStatus = false},editDialogCancle() {this.getUser().then(() => {this.$refs.editFormRef.validate(async valid => {if (!valid) return})})this.updateStatus = true},// 修改用户信息并提交editUserInfo() {this.$refs.editFormRef.validate(async valid => {if (!valid) returnlet pwd = ''if (this.userData.password === '' || this.userData.password === undefined) {pwd = '@ad@cc@123$!@'} else {pwd = this.userData.password}delete this.userData.passworddelete this.userData.validPwdupdateUser(this.userData, pwd).then(() => {this.getUser()this.updateStatus = truethis.$message.success('Update Success')})})}}
}
</script>

将上述代码的pwssword 和 validPwd 的初始传入的值删除后解决了此问题:将红色圈的地方删除

修改后代码如下:

<template><el-formref="editFormRef":model="userData":rules="editFormRules"><el-form-item :label="$t('table.username')"><el-input v-model="userData.login" disabled /></el-form-item><el-form-item :label="$t('table.email')" prop="email"><el-input v-model="userData.email" :disabled="updateStatus" /></el-form-item><el-form-item :label="$t('table.firstName')"><el-input v-model="userData.firstName" :disabled="updateStatus" /></el-form-item><el-form-item :label="$t('table.lastName')"><el-input v-model="userData.lastName" :disabled="updateStatus" /></el-form-item><el-form-item :label="$t('table.password')" prop="password"><el-input v-model="userData.password" :disabled="updateStatus" /></el-form-item><el-form-item :label="$t('table.validPwd')" prop="validPwd"><el-input v-model="userData.validPwd" :disabled="updateStatus" /></el-form-item><el-form-item><el-button v-if="updateStatus" type="primary" @click="changeUpdateStatus">{{ $t('table.edit') }}</el-button><el-button v-if="!updateStatus" @click="editDialogCancle">{{ $t('table.cancel') }}</el-button><el-button v-if="!updateStatus" type="primary" @click="editUserInfo">{{ $t('table.submit') }}</el-button></el-form-item></el-form>
</template><script>
import { passwordValid, emailValid, notNullValid } from '@/utils/validate'
import { updateUser, getUserByName } from '@/api/user'
export default {props: {user: {type: Object,default: () => {return {name: '',avatar: '',role: ''}}}},data() {const validatePass = (rule, value, callback) => {if (this.userData.validPwd !== this.userData.password) {callback(new Error('两次输入密码不一致!'))} else {callback()}}return {userData: {},updateStatus: true,editFormRules: {email: emailValid,password: passwordValid,validPwd: [{ validator: validatePass, trigger: 'blur' }],role: notNullValid}}},mounted() {this.getUser()},methods: {async getUser() {this.userData = await getUserByName(this.user.name)},changeUpdateStatus() {this.updateStatus = false},editDialogCancle() {this.getUser().then(() => {this.$refs.editFormRef.validate(async valid => {if (!valid) return})})this.updateStatus = true},// 修改用户信息并提交editUserInfo() {this.$refs.editFormRef.validate(async valid => {if (!valid) returnlet pwd = ''if (this.userData.password === '' || this.userData.password === undefined) {pwd = '@ad@cc@123$!@'} else {pwd = this.userData.password}delete this.userData.passworddelete this.userData.validPwdupdateUser(this.userData, pwd).then(() => {this.getUser()this.updateStatus = truethis.$message.success('Update Success')})})}}
}
</script>

el-input 输入框不能输入值,加强制输入input属性后却校验失效相关推荐

  1. input输入框无法输入值的解决方案

    IOS系统input输入框无法输入值 页面上的input输入框设置-webkit-user-select:text !important;或者一并给input的父类加上此样式.(亲试有效) <i ...

  2. input输入框限制中文汉字只能输入20个字符,英文10个字符!

    iput输入框限制中文汉字只能输入10个字符,英文20个字符! 产品提了一个需求,要求输入框输入汉字的时候只能输入10个汉字 英文的话只能输入20个,当时不知道怎么做,后来通过百度查找到了答案. @i ...

  3. ios系统上input输入框无法输入值的解决办法

    有好多做手机端网页开发的朋友常常遇到这种问题,就是苹果系统不能在输入框输入值只要在input 上面加上css样式-webkit-user-select:text !important 或者在父类加上这 ...

  4. input输入框按照字符数限制输入

    实现效果:按照字符数限制用户输入长度,汉字为两个字符,数字和字母为一个字符,超出字符长度限制时,自动去掉多余部分来限制用户输入. 第一种实现方式,自定义指令(update存在不及时调用的情况,放弃) ...

  5. input输入框设置输入值

    <div class="conR rowCon"><input class="inps" type="number" pl ...

  6. html button点击后失去焦点,页面一个input输入框和一个取消按钮,input失去焦点时向后台发交易,点击取消按钮时不发交易...

    html 取消 alt 静态页面 批注:在点击按钮的时候之前就执行了blur事件,所以这个时候是无法把发送到后台的接口给拦截住的. 给2个不同的元素进行的绑定事件,这个时候2个事件还出现了重叠. 经过 ...

  7. 解决 input 输入框在 iOS 系统中无法输入内容

    问题 input 输入框在 Android 系统可以输入和点击,但是在 iOS 系统上 input 输入框无法点击和输入. 解决方法 方案一:在代码中查找并去掉下列样式 -webkit-touch-c ...

  8. input输入框事件流程变化

    从聚焦到失去焦点,以下事件会根据情况,先后判断是否会执行. onfocus -> 键盘输入 -> onkeydown -> onkeypress -> onkeyup -> ...

  9. 点击底部input输入框,弹出的软键盘挡住input(苹果手机使用第三方输入法 )

    测试移动端页面的时候,偶然发现点击底部input输入框时,弹出的虚拟键盘偶尔会挡住input输入框. 输入框固定在页面底部,如图所示: input固定底部设计图.png 点击底部input输入框唤起软 ...

最新文章

  1. seaborn使用violinplot函数可视化小提琴图、并在violinplot函数中设置inner参数来添加数据点显示数据的稠密程度
  2. 多媒体-设备的名称已被此应用程序用作别名,请使用唯一的别名
  3. 区块链组织-超级账本(Hyperledger)的简介
  4. win2003 https 网站的图文配置教程
  5. 【反欺诈】互金欺诈与反欺诈
  6. 苹果cms10的php.ini目录列表,[苹果cmsV10]常见问题整理官方版
  7. mfc cimage加载显示图片_在微信小程序里实现图片预加载组件
  8. 草稿 9203 作业重点关注
  9. 服务器虚拟化相关问题分析,服务器虚拟化后引入的问题分析
  10. discuzcode函数
  11. 手机号归属地数据库;根据手机号查找对应的归属地;
  12. 「x86」- 特权级(Privilege Level)学习笔记 @20210215
  13. WoShop跨境电商USDT支付语言插件全开源无加密商城源码
  14. Apache JMeter安装
  15. 查看word的版本型号
  16. 013-Flowcharting实现动态可感知网络拓扑
  17. 【STL】push 和 emplace区别
  18. 浙江数字贸易先行示范区建设方案发布,贡献数字贸易“浙江方案”
  19. 公司股权质押办理哪些手续
  20. java自适应响应式 企业网站源码 SSM 生成静态化 手机 平板 PC

热门文章

  1. 数字图像处理-编程实现染色体计数 C语言实现
  2. 技术转让合同的主要条款是什么
  3. vb.net html里的表格,VB.Net - Excel工作表
  4. VBA程序_格式调整_针对所有工作表_取消所有行_所有列的隐藏项
  5. 防火墙双机热备技术详解
  6. Windows/Linux平台下命名管道通信调用参考
  7. windows操作系统中SID是什么??
  8. 【转】女孩蓉蓉买票回家的曲折经历(多图)
  9. 物联网、智能家居常用部件汇总
  10. 攻防世界题目练习--MISC新手关(1~6)