vue修改數(shù)據(jù)的時(shí)候,表單值回顯不正確問題及解決
修改數(shù)據(jù)的時(shí)候,表單值回顯不正確
如果在修改數(shù)據(jù)的時(shí)候,發(fā)現(xiàn)表單的值回顯不正確,每次修改,都是第一次修改的值,這個(gè)可能是你的代碼有問題。
如果出現(xiàn)上面的問題,請(qǐng)檢查
(1) prop的數(shù)據(jù)是否綁定正確
<el-col :span="24"> ? <el-form-item label="圖標(biāo)" prop="icon"> ? ? <e-icon-picker v-model="stform.icon" /> ? </el-form-item> </el-col>
(2) 實(shí)在不行 forceUpdate一次
this.$forceUpdate();
vue簡(jiǎn)單實(shí)現(xiàn)數(shù)據(jù)回顯
簡(jiǎn)單記錄自己寫的數(shù)據(jù)回顯,比較復(fù)雜如果有更好的方法請(qǐng)指正
寫了兩個(gè)輸入框,用焦點(diǎn)修改狀態(tài)通過值來判斷可否點(diǎn)擊
1、回顯輸入框html
? ? ? ?<van-form @submit="onSubmit"> ? ? ? ? //這塊是判斷是否顯示 哪一個(gè)輸入框 ? ? ? ? ?<template v-if="isInput"> ? ? ? ? ? <van-field v-model="repeatauthInfo.repeatbankNo" ? ? ? ? ? ? ? ? ? ? ?label="本人實(shí)名銀行卡" ? ? ? ? ? ? ? ? ? ? ?name="本人實(shí)名銀行卡2" ? ? ? ? ? ? ? ? ? ? ?maxlength="25" ? ? ? ? ? ? ? ? ? ? ?:formatter="formatter"http://效驗(yàn)規(guī)則 ? ? ? ? ? ? ? ? ? ? ?:disabled='hasDisabled' ? ? ? ? ? ? ? ? ? ? ?label-class="authTitle" ? ? ? ? ? ? ? ? ? ? ?placeholder="請(qǐng)?zhí)顚戙y行卡號(hào)" ? ? ? ? ? ? ? ? ? ? ?@input="repeatInputbankNo" ? ? ? ? ? ? ? ? ? ? ?@blur="blurBankNo"http://失去焦點(diǎn)事件? ? ? ? ? ? ? ? ? ? ? ?input-align="right" /> ? ? ? ? </template> ? ? ? ? <template v-else> ? ? ? ? ? <van-field v-model="authInfo.bankNo?? ?" ? ? ? ? ? ? ? ? ? ? ?label="本人實(shí)名銀行卡" ? ? ? ? ? ? ? ? ? ? ?name="本人實(shí)名銀行卡" ? ? ? ? ? ? ? ? ? ? ?maxlength="25" ? ? ? ? ? ? ? ? ? ? ?:formatter="formatter" ? ? ? ? ? ? ? ? ? ? ?:disabled='hasDisabled' ? ? ? ? ? ? ? ? ? ? ?label-class="authTitle" ? ? ? ? ? ? ? ? ? ? ?placeholder="請(qǐng)?zhí)顚戙y行卡號(hào)" ? ? ? ? ? ? ? ? ? ? ?@input="InputbankNo" ? ? ? ? ? ? ? ? ? ? ?@focus="focusBankNo"http://獲取焦點(diǎn)事件 ? ? ? ? ? ? ? ? ? ? ?input-align="right" /> ? ? ? ? </template> ? ? ? ? <van-button :class="isSumit?'saveTrue':'saveFalse'" ? ? ? ? ? ? ? ? ? ? round ? ? ? ? ? ? ? ? ? ? block ? ? ? ? ? ? ? ? ? ? native-type="submit">下一步,添加收款信息</van-button> ? ? ? </van-form>
2、data 定義的數(shù)據(jù)
data() { ? ? return { ? ? ? authInfo: { ? ? ? ? bankNo: '', //銀行卡 ? ? ? }, ? ? ? repeatauthInfo: { ? ? ? ? repeatbankNo: '', //修改銀行卡信息 ? ? ? }, ? ? ? isInput: false, ? ? ? hasDisabled: false, //通過狀態(tài)判斷輸入框是否可用 ? },
3、計(jì)算屬性判斷按鈕狀態(tài)
? ?computed: { ? ? ? //計(jì)算屬性判斷是否校驗(yàn)通過,按鈕狀態(tài) ? ? ? isSumit() { ? ? ? ? if ( ? ? ? ? ? this.authInfo.name && ? ? ? ? ? this.authInfo.cardNo.length >= 15 && ? ? ? ? ? this.authInfo.bankNo.length >= 10 && ? ? ? ? ? this.authInfo.bankName && ? ? ? ? ? this.authInfo.bankCity ? ? ? ? ) { ? ? ? ? ? if (this.isInput) {//如果修改輸入內(nèi)容 輸入位數(shù)須超過10位才可通過校驗(yàn) ? ? ? ? ? ? if (this.repeatauthInfo.repeatbankNo.length >= 10) { ? ? ? ? ? ? ? return true ? ? ? ? ? ? } else { ? ? ? ? ? ? ? return false ? ? ? ? ? ? } ? ? ? ? ? } ? ? ? ? ? return true ? ? ? ? } else { ? ? ? ? ? return false ? ? ? ? } ? ? ? }, ? ? },
4、對(duì)*數(shù)據(jù)做處理
因?yàn)槿绻鸻uthInfo.bankNo 值存在的話 是做了加密處理顯示的帶*號(hào) ,但是用戶輸入的話是不允許有星號(hào)的,后臺(tái)對(duì)有*號(hào)的是不校驗(yàn)的
? methods: {//如果存在數(shù)據(jù)后臺(tái)返回的數(shù)據(jù)是帶*號(hào)加密的 ? ? ? //*號(hào)處理 ? ? ? isStr(value) { ? ? ? ? let str = value ? ? ? ? let reg = new RegExp('[*]') ? ? ? ? if (reg.test(value)) { ? ? ? ? ? str = value.replace(/\*/g, '') ? ? ? ? } ? ? ? ? return str ? ? ? }, ? ? ? //input 事件不允許用戶輸入*號(hào) ? ? ? InputcardNo(value) {//銀行卡 ? ? ? ? this.authInfo.cardNo = this.isStr(value) ? ? ? }, ? ? ? repeatInputbankNo(value) {//修改銀行卡 ? ? ? ? this.repeatauthInfo.repeatbankNo = this.isStr(value) ? ? ? }, ? ? ? //回顯處理 ? ? ? focusBankNo() {//銀行卡焦點(diǎn)事件點(diǎn)擊時(shí)修改狀態(tài) ? ? ? ? if (this.authInfo.bankNo.indexOf('*') != -1) { ? ? ? ? ? this.isInput = true ? ? ? ? ? // this.repeatauthInfo.repeatbankNo == '' ? ? ? ? } else { ? ? ? ? ? this.isInput = false ? ? ? ? } ? ? ? }, ? ? ? blurBankNo() {//失去焦點(diǎn) 存在值的話顯示修改輸入框否則顯示原來輸入框 ? ? ? ? if (this.repeatauthInfo.repeatbankNo) { ? ? ? ? ? this.isInput = true ? ? ? ? } else { ? ? ? ? ? this.isInput = false ? ? ? ? } ? ? ? }, ? ? ? //輸入框去空格 ? ? ? formatter(value) { ? ? ? ? return value.trim() ? ? ? }, ? ? ? //獲取實(shí)名信息 ? ? ? 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: '請(qǐng)勾選協(xié)議', ? ? ? ? ? }) ? ? ? ? } else { ? ? ? ? ? //需要攜帶卡號(hào)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' }, ? ? ? ? ? ? ? }) ? ? ? ? ? ? ? //身份證二要素校驗(yàn)失敗 ? ? ? ? ? ? } 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() ? ? }, ? }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue element el-table-column中對(duì)日期進(jìn)行格式化方式(全局過濾器)
這篇文章主要介紹了Vue element el-table-column中對(duì)日期進(jìn)行格式化方式(全局過濾器),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04安裝vue-cli報(bào)錯(cuò) -4058 的解決方法
這篇文章主要介紹了安裝vue-cli報(bào)錯(cuò) -4058 的解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10詳解vue中使用express+fetch獲取本地json文件
本篇文章主要介紹了詳解vue中使用express+fetch獲取本地json文件,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-10-10一文教會(huì)你搭建vite項(xiàng)目并配置路由和element-plus
由于項(xiàng)目搭建過程實(shí)在繁瑣,容易遺忘,每次新建項(xiàng)目還得百度一下怎么搭建,所以寫下本文提醒自己,下面這篇文章主要給大家介紹了關(guān)于搭建vite項(xiàng)目并配置路由和element-plus的相關(guān)資料,需要的朋友可以參考下2022-07-07vue使用混入定義全局變量、函數(shù)、篩選器的實(shí)例代碼
本文主要是給大家分享利用混入mixins來實(shí)現(xiàn)全局變量和函數(shù)。這種方法優(yōu)點(diǎn)是ide會(huì)有方法、變量、篩選器提示。對(duì)vue中 利用混入定義全局變量、函數(shù)、篩選器的相關(guān)知識(shí)感興趣的朋友,跟隨小編一起看看吧2019-07-07