亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

element?ui?watch?el-input賦值之后無(wú)法刪除或修改問(wèn)題

 更新時(shí)間:2024年02月28日 09:11:04   作者:像牛奶卻不是牛奶  
這篇文章主要介紹了element?ui?watch?el-input賦值之后無(wú)法刪除或修改問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

element ui watch el-input賦值之后無(wú)法刪除或修改

在開(kāi)發(fā)過(guò)程中偶然返現(xiàn)這個(gè)小問(wèn)題:

watch監(jiān)聽(tīng)父組件傳過(guò)來(lái)的值并給el-input賦值 之后發(fā)現(xiàn)無(wú)法修改input得值 需要在input里添加 @input="change($event)"

<el-input v-model="condition.name" @input="change($event)" size="small" clearable></el-input>

watch里賦值 

    chemicalName: {
      handler (value) {
        this.condition.name = value
        this.onSearch()
      },
      deep: true
    }

然后在methods里寫(xiě)上以下方法就ok了

    change () {
      this.$forceUpdate()
    },

Element-ui組件常見(jiàn)問(wèn)題

el-input

問(wèn)題1:表單允許輸入數(shù)字和兩位小數(shù), 不足自動(dòng)補(bǔ)0

代碼:

onkeyup="value=value.replace(/[^\d.]/g,'')"  替換掉除數(shù)字和小數(shù)點(diǎn)之外的字符

@blur="balanceForm.alarm_amount = $event.target.value"  解決input輸入框在使用了oninput后,v-model失效問(wèn)題
<el-form label-width="120px" :model="balanceForm" :rules="balanceRules">
   <el-form-item label="設(shè)置余額預(yù)警:" prop="alarm_amount">
       <el-input
          size="small"
          v-model="balanceForm.alarm_amount"
          autocomplete="off"
          style="width: 200px;margin-right:10px"
          onkeyup="value=value.replace(/[^\d.]/g,'')"
          @blur="balanceForm.alarm_amount = $event.target.value"
          ></el-input>
          <el-button type="primary" size="small" @click="onBalance">設(shè)置</el-button>
   </el-form-item>
</el-form>

export default {
    data() {
        var checkAmount = (rule, value, callback) => {
            if (value === '') {
                return callback(new Error('余額預(yù)警不能為空'));
            } else if (value.indexOf(".") != -1 && value.split('.').length > 2) {
                callback(new Error('請(qǐng)輸入正確格式,只能有一位小數(shù)點(diǎn)'));
            } else if (value.indexOf(".") != -1 && value.split('.')[1].length > 2) {
                callback(new Error('小數(shù)點(diǎn)后面只能有兩位'));
            } else {
                var Money = parseFloat(value).toFixed(3); // 獲取三位小數(shù)點(diǎn) 10.000(以10為例)也可以直接獲取兩位小數(shù)
                var MoneyResult = Money.substring(0, Money.length - 1); // 取前兩位 10.00
                var xsd = MoneyResult.toString().split("."); // 分割成數(shù)組 ["10", "00"]
                if (xsd.length == 1) {
                    this.balanceForm.alarm_amount = creditResult.toString() + ".00";
                }
                if (xsd.length > 1) {
                    if (xsd[1].length == 1) {
                        this.balanceForm.alarm_amount = MoneyResult;
                    }
                    if (xsd[1].length > 1) {
                        this.balanceForm.alarm_amount = xsd[0].toString() + "." + xsd[1].toString().substring(0, 2);
                    }
                }
                callback()
            }
        };
        return {
        	// 余額預(yù)警
            balanceForm: {
                alarm_amount: '',
            },
            balanceRules: {
                alarm_amount: [
                    {validator: checkAmount, trigger: 'blur'}
                ]
            }
        }
     }
}

補(bǔ)充: 如下寫(xiě)法是不行的,number不能輸入小數(shù) 像10.12小數(shù)點(diǎn)后面的是輸不進(jìn)去的

<el-input
   size="small"
   v-model.number="balanceForm.alarm_amount"
   autocomplete="off"
   style="width: 200px;margin-right:10px"
   onkeyup="value=value.replace(/[^\d.]/g,'')"
   ></el-input>

如果希望輸入負(fù)數(shù),上面寫(xiě)法是不行的

<el-input
   size="small"
   v-model.trim="balanceForm.alarm_amount"
   autocomplete="off"
   style="width: 200px;margin-right:10px"
   ></el-input>

// 驗(yàn)證
var checkAmount = (rule, value, callback) => {
   // console.log('rule', rule, value);
   // console.log('value', value);
   if (value != 0 && !Number(value)) {
      callback(new Error('請(qǐng)輸入數(shù)字'));
   } else if (value.indexOf(".") != -1 && value.split('.').length > 2) {
      callback(new Error('請(qǐng)輸入正確格式,只能有一位小數(shù)點(diǎn)'));
   } else if (value.indexOf(".") != -1 && value.split('.')[1].length > 2) {
      callback(new Error('小數(shù)點(diǎn)后面只能有兩位'));
   } else {
   		var Money = parseFloat(value).toFixed(3);
	    var MoneyResult = Money.substring(0, Money.length - 1);
      	var xsd = MoneyResult.toString().split(".");
      	// console.log('Money', Money, MoneyResult, xsd, xsd[1].length);
      	// if (xsd.length == 1) {
      	//     this.balanceForm.alarm_amount = creditResult.toString() + ".00";
      	// }
      	if (xsd.length > 1) {
      		if (xsd[1].length == 1) {
        		this.balanceForm.alarm_amount = MoneyResult;
        	}
        	if (xsd[1].length > 1) {
            	this.balanceForm.alarm_amount = xsd[0].toString() + "." + xsd[1].toString().substring(0, 2);
        	}
  	   	}
    	callback()
  	}
};

問(wèn)題2: 根據(jù)輸入內(nèi)容提供對(duì)應(yīng)的輸入建議,獲取上一次提交的用戶名 

代碼:

<template>
	<el-dialog title="上傳憑證" :visible="uploadDialogVisible" class="updata" @close="onCloseEditDialog">
       <el-form
            id="uploadForm"
            method="post"
            enctype="multipart/form-data"
            :model="formData"
            label-width="120px"
            ref="formData"
            :rules="rules">
            ...
            <el-form-item label="開(kāi)戶人姓名: " prop="bank_username">
                <el-autocomplete
                    class="inline-input"
                    v-model="formData.bank_username"
                    :fetch-suggestions="querySearch"
                    @select="handleSelect"
                    style="width:300px"
                    :debounce="0"
                    ></el-autocomplete>
            </el-form-item>
            ...
        </el-form>
</template>

<script>
	...
	// 開(kāi)戶人姓名
  querySearch(queryString, cb) {
       // 調(diào)用 callback 返回建議列表的數(shù)據(jù)
       var list = []
       // this.tableData調(diào)接口獲取的列表數(shù)據(jù),數(shù)據(jù)里面沒(méi)有value,需要添加value,回調(diào)函數(shù)返回的數(shù)據(jù)必須是[{value: '待選項(xiàng)'},{}]這種形式
       if (this.tableData.length) {
          list.push(Object.assign(this.tableData[0], {value: this.tableData[0].bank_username}))
          // console.log('list', list);
        }
        cb(list);
   },
   // 選中下拉開(kāi)戶人姓名
   handleSelect (item) {
      // console.log('item', item);
      this.formData.bank_username = item.value
   }
   ...
</script>

解決 el-autocomplete 不顯示及沒(méi)數(shù)據(jù)時(shí)閃一下的問(wèn)題

  • 方法一 輸入建議的去抖延時(shí)設(shè)置為0 :debounce=“0”
  • 方法二 添加樣式 .inline-input { display: none; }

fetch-suggestions - 返回輸入建議的方法,僅當(dāng)你的輸入建議數(shù)據(jù) resolve 時(shí),通過(guò)調(diào)用 callback(data:[]) 來(lái)返回它

@select - 點(diǎn)擊選中建議項(xiàng)時(shí)觸發(fā), 回調(diào)函數(shù)是選中建議項(xiàng)

問(wèn)題3: el-cascader卡頓問(wèn)題 

代碼:

<el-cascader v-model="dataForm.calendarId" :options="calendarData"
	:props="{value: 'id', label: 'name'}" @visible-change="changeCascader"></el-cascader>
...
// 日歷選擇改變-> 后面可以用watch監(jiān)聽(tīng)數(shù)據(jù)改變來(lái)進(jìn)行操作
changeCascader() {
	this.$nextTick(() => {
     	// 添加這段代碼
        const $el = document.querySelectorAll('.el-cascader-panel .el-cascader-node[aria-owns]');
        Array.from($el).map((item) => item.removeAttribute('aria-owns'));
    });
},

問(wèn)題4: el-table fixed錯(cuò)位問(wèn)題 

代碼:

<el-table
	:data="tableData"
     v-loading="loading"
     ref="multipleTable"
>
...
</el-table>
...
methods: {
	getTableData() {
		this.loading = true
		getTableData().then(res => {
			this.tableData = res.data
			this.loading = false
			this.$nextTick(() => {
	            this.$refs.multipleTable.doLayout();
	        })
		})
	}
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于Echarts圖表在div動(dòng)態(tài)切換時(shí)不顯示的解決方式

    基于Echarts圖表在div動(dòng)態(tài)切換時(shí)不顯示的解決方式

    這篇文章主要介紹了基于Echarts圖表在div動(dòng)態(tài)切換時(shí)不顯示的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • vue3如何在setup中獲取DOM元素

    vue3如何在setup中獲取DOM元素

    這篇文章主要介紹了vue3如何在setup中獲取DOM元素問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue路由跳轉(zhuǎn)步驟詳解

    Vue路由跳轉(zhuǎn)步驟詳解

    這篇文章主要介紹了?Vue路由跳轉(zhuǎn)步驟詳解,主要介紹當(dāng)訪問(wèn)API成功后跳轉(zhuǎn)到新的Vue頁(yè)面怎么處理,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • Vue中渲染系統(tǒng)模塊的實(shí)現(xiàn)詳解

    Vue中渲染系統(tǒng)模塊的實(shí)現(xiàn)詳解

    想要實(shí)現(xiàn)一個(gè)簡(jiǎn)潔版的Mini-Vue框架,應(yīng)該包含三個(gè)模塊:分別是:渲染系統(tǒng)模塊、可響應(yīng)式系統(tǒng)模塊、應(yīng)用程序入庫(kù)模塊,本文主要介紹的是渲染系統(tǒng)模塊的實(shí)現(xiàn),需要的可以參考一下
    2023-07-07
  • vue中為什么在組件內(nèi)部data是一個(gè)函數(shù)而不是一個(gè)對(duì)象

    vue中為什么在組件內(nèi)部data是一個(gè)函數(shù)而不是一個(gè)對(duì)象

    這篇文章主要介紹了vue中為什么在組件內(nèi)部data是一個(gè)函數(shù)而不是一個(gè)對(duì)象,本文通過(guò)示例代碼給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • vue.js使用3DES加密的方法示例

    vue.js使用3DES加密的方法示例

    這篇文章主要介紹了vue.js使用3DES加密的方法,結(jié)合實(shí)例形式分析了vue.js使用3DES加密的具體操作步驟與使用技巧,并提供了CryptoJS-v3.1.2的本地下載,需要的朋友可以參考下
    2018-05-05
  • Vue-CLI 3.X 部署項(xiàng)目至生產(chǎn)服務(wù)器的方法

    Vue-CLI 3.X 部署項(xiàng)目至生產(chǎn)服務(wù)器的方法

    這篇文章主要介紹了Vue-CLI 3.X 部署項(xiàng)目至生產(chǎn)服務(wù)器的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • vue activated在子組件中的使用詳情

    vue activated在子組件中的使用詳情

    這篇文章主要介紹了vue activated在子組件中的使用,文章圍繞vue activated的xingu你資料講解展開(kāi)內(nèi)容并附上具體代碼,需要的朋友可以參考一下
    2021-11-11
  • vue如何使用rem適配

    vue如何使用rem適配

    這篇文章主要介紹了vue如何使用rem適配,幫助大家處理vue開(kāi)發(fā)移動(dòng)應(yīng)用時(shí)的兼容性問(wèn)題,感興趣的朋友可以了解下
    2021-02-02
  • vue路由傳參及獲取參數(shù)的方式總結(jié)

    vue路由傳參及獲取參數(shù)的方式總結(jié)

    這篇文章主要介紹了vue路由傳參及獲取參數(shù)的方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05

最新評(píng)論