热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vue修改数据的时候,表单值回显不正确问题及解决

vue修改数据的时候,表单值回显不正确问题及解决-目录修改数据的时候,表单值回显不正确vue简单实现数据回显1、回显输入框html2、data定义的数据 3、计算属性判断按钮状态4

修改数据的时候,表单值回显不正确

如果在修改数据的时候,发现表单的值回显不正确,每次修改,都是第一次修改的值,这个可能是你的代码有问题。

如果出现上面的问题,请检查

(1) prop的数据是否绑定正确


  
    
  

(2) 实在不行 forceUpdate一次

this.$forceUpdate();

vue简单实现数据回显

简单记录自己写的数据回显,比较复杂如果有更好的方法请指正

写了两个输入框,用焦点修改状态通过值来判断可否点击

1、回显输入框html

       
        //这块是判断是否显示 哪一个输入框
         
        
        下一步,添加收款信息
      

2、data 定义的数据 

data() {
    return {
      authInfo: {
        bankNo: '', //银行卡
      },
      repeatauthInfo: {
        repeatbankNo: '', //修改银行卡信息
      },
      isInput: false,
      hasDisabled: false, //通过状态判断输入框是否可用
  },

3、计算属性判断按钮状态

   computed: {
      //计算属性判断是否校验通过,按钮状态
      isSumit() {
        if (
          this.authInfo.name &&
          this.authInfo.cardNo.length >= 15 &&
          this.authInfo.bankNo.length >= 10 &&
          this.authInfo.bankName &&
          this.authInfo.bankCity
        ) {
          if (this.isInput) {//如果修改输入内容 输入位数须超过10位才可通过校验
            if (this.repeatauthInfo.repeatbankNo.length >= 10) {
              return true
            } else {
              return false
            }
          }
          return true
        } else {
          return false
        }
      },
    },

4、对*数据做处理

因为如果authInfo.bankNo 值存在的话  是做了加密处理显示的带*号 ,但是用户输入的话是不允许有星号的,后台对有*号的是不校验的

  methods: {//如果存在数据后台返回的数据是带*号加密的
      //*号处理
      isStr(value) {
        let str = value
        let reg = new RegExp('[*]')
        if (reg.test(value)) {
          str = value.replace(/\*/g, '')
        }
        return str
      },
      //input 事件不允许用户输入*号
      InputcardNo(value) {//银行卡
        this.authInfo.cardNo = this.isStr(value)
      },
      repeatInputbankNo(value) {//修改银行卡
        this.repeatauthInfo.repeatbankNo = this.isStr(value)
      },
      //回显处理
      focusBankNo() {//银行卡焦点事件点击时修改状态
        if (this.authInfo.bankNo.indexOf('*') != -1) {
          this.isInput = true
          // this.repeatauthInfo.repeatbankNo == ''
        } else {
          this.isInput = false
        }
      },
      blurBankNo() {//失去焦点 存在值的话显示修改输入框否则显示原来输入框
        if (this.repeatauthInfo.repeatbankNo) {
          this.isInput = true
        } else {
          this.isInput = false
        }
      },
      //输入框去空格
      formatter(value) {
        return value.trim()
      },
      //获取实名信息
      getaccountInfo() {
        accountInfo().then((res) => {
          // console.log(res)
          this.authInfo = res.data
        })
      },
      //提交信息
      onSubmit(values) 
        setTimeout(() => {
          this.checkBlure(values)
        }, 500)
      },
      checkBlure(values) {
        const that = this
        if (!that.isSumit) {
          return
        } else if (!that.agreementFlag) {
          that.$message({
            type: 'error',
            message: '请勾选协议',
          })
        } else {
          //需要携带卡号bankNo
          let { bankNo } =this.authInfo
          let { repeatbankNo} = this.repeatauthInfo
          let params = {
            bankNo: repeatbankNo ? repeatbankNo : bankNo,
          }
          saveBank(params).then((res) => {
            // console.log(res)
            if (res.code == 200) {
              that.$router.push({
                path: '/settleAddAccount',
                query: { from: 'authentication' },
              })
              //身份证二要素校验失败
            } else if (
              res.code == 11020 ||
              res.code == 11005 ||
              res.code == 11019 ||
              res.code == 11021 ||
              res.code == 14002
            ) {
              that.showFailed = true
              that.showFailText = res.message //提示弹框
            }
          })
        }
      },
    },
    created() {
      this.getaccountInfo()
    },
  }

推荐阅读
  • vue使用
    关键词: ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 判断数组是否全为0_连续子数组的最大和的解题思路及代码方法一_动态规划
    本文介绍了判断数组是否全为0以及求解连续子数组的最大和的解题思路及代码方法一,即动态规划。通过动态规划的方法,可以找出连续子数组的最大和,具体思路是尽量选择正数的部分,遇到负数则不选择进去,遇到正数则保留并继续考察。本文给出了状态定义和状态转移方程,并提供了具体的代码实现。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 本文讨论了将HashRouter改为Router后,页面全部变为空白页且没有报错的问题。作者提到了在实际部署中需要在服务端进行配置以避免刷新404的问题,并分享了route/index.js中hash模式的配置。文章还提到了在vueJs项目中遇到过类似的问题。 ... [详细]
  • 一、路由首先需要配置路由,就是点击good组件进入goodDetail组件配置路由如下{path:goodDetail,component:goodDetail}同时在good组件中写入如下点击事件,路由中加入 ... [详细]
  • 1、etcnginxconf.ddefault.conf,添加如下信息:location{try_files$uri$urirouter;rootho ... [详细]
author-avatar
黑漆高傲的眼眸
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有