最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

element-ui下拉輸入框+resetFields無法回顯的問題解決

 更新時(shí)間:2025年01月09日 15:37:07   作者:滿分觀察網(wǎng)友z  
本文主要介紹了在使用Element?UI的下拉輸入框時(shí),點(diǎn)擊重置按鈕后輸入框無法回顯數(shù)據(jù)的問題,具有一定的參考價(jià)值,感興趣的可以了解一下

描述

第一次進(jìn)入頁面,不做任何操作,點(diǎn)擊重置按鈕,再進(jìn)行下拉選擇,輸入框并不能回顯數(shù)據(jù),點(diǎn)擊搜索后,選中的數(shù)據(jù)就能顯示出來。

請(qǐng)?zhí)砑訄D片描述

重置代碼,resetForm的底層用的是表單的resetFields。

resetFields的作用:對(duì)整個(gè)表單進(jìn)行重置,將所有字段重置為初始值(而不是設(shè)置為空值)并移除校驗(yàn)結(jié)果

注意:一定要加上prop,否則無法清除

    // 重置按鈕操作
    resetQuery: _.debounce(function () {
      //重置表單
      this.resetForm("queryForm");
      //搜索
      this.handleQuery();
    }, 500),

在這里插入圖片描述

原因

表單綁定的是搜索的對(duì)象內(nèi)容,而表單的內(nèi)容使用的是v-model來綁定,如果沒給表單內(nèi)容初始值,那么綁定的內(nèi)容就不是響應(yīng)式,打印出來也可以看見。所以就會(huì)出現(xiàn)搜索后才會(huì)回顯選中的內(nèi)容。

外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳

這時(shí)候就有兩種解決方法

  • 給表單初始值,讓它變成響應(yīng)式,但是如果表單內(nèi)容有100個(gè)的話,得一個(gè)個(gè)加。
  • 清空的時(shí)候,不必使用表單的清除屬性resetField,而是使用封裝好的清空對(duì)象方法。

問題重現(xiàn)

這里只給了請(qǐng)假類型初始值,而未給請(qǐng)假方式初始值。

請(qǐng)?zhí)砑訄D片描述

外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳

<template>
  <div style="margin-top: 100px">
    <el-form
      :model="form"
      ref="ruleForm"
      label-width="100px"
      class="demo-ruleForm"
    >
      <el-form-item label="請(qǐng)假類型" prop="leaveType">
        <el-select v-model="form.leaveType" placeholder="請(qǐng)選擇請(qǐng)假類型">
          <el-option label="事假" value="1"></el-option>
          <el-option label="病假" value="2"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="請(qǐng)假方式" prop="leaveWay">
        <el-select v-model="form.leaveWay" placeholder="請(qǐng)選擇請(qǐng)假方式">
          <el-option label="單次請(qǐng)假" value="1"></el-option>
          <el-option label="長期請(qǐng)假" value="2"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="submitForm('ruleForm')"
          >確定</el-button
        >
        <el-button @click="resetForm('ruleForm')">重置</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      form: {
        leaveType: "",
      },
    };
  },
  methods: {
    resetForm(formName) {
      console.log("form", this.form);
      this.$refs[formName].resetFields();
    },
  },
};
</script>

<style lang="scss" scoped></style>

解決方案

方法一

給表單初始值,讓它變成響應(yīng)式,可以很明顯地看到表單的初始化內(nèi)容,都有響應(yīng)式。

form: {
        leaveType: "",
        leaveWay: "",
      },

在這里插入圖片描述

缺點(diǎn)是需要一個(gè)個(gè)加,很費(fèi)時(shí)間。

方法二

不使用表單的resetFields清空表單,而是使用清空對(duì)象的cleanObject方法。

<template>
  <div style="margin-top: 100px">
    <el-form
      :model="form"
      ref="ruleForm"
      label-width="100px"
      class="demo-ruleForm"
    >
      <el-form-item label="請(qǐng)假類型" prop="leaveType">
        <el-select v-model="form.leaveType" placeholder="請(qǐng)選擇請(qǐng)假類型">
          <el-option label="事假" value="1"></el-option>
          <el-option label="病假" value="2"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="請(qǐng)假方式" prop="leaveWay">
        <el-select v-model="form.leaveWay" placeholder="請(qǐng)選擇請(qǐng)假方式">
          <el-option label="單次請(qǐng)假" value="1"></el-option>
          <el-option label="長期請(qǐng)假" value="2"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary">確定</el-button>
        <el-button @click="resetForm(form)">重置</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      form: {},
    };
  },
  methods: {
    resetForm(formName) {
      this.cleanObject(formName);
    },
    cleanObject(obj) {
      // 判斷對(duì)象是否為非對(duì)象或null
      if (typeof obj !== "object" || obj === null) {
        return obj;
      }

      // 判斷對(duì)象是否為數(shù)組
      if (Array.isArray(obj)) {
        // 遞歸處理數(shù)組中的每個(gè)元素
        return obj.map((item) => this.cleanObject(item));
      }

      // 如果是對(duì)象,則遍歷其屬性
      for (const key in obj) {
        // 判斷值是否為數(shù)組
        if (Array.isArray(obj[key])) {
          // 如果是數(shù)組,則將其置為空數(shù)組
          obj[key] = [];
        } else {
          // 遞歸處理對(duì)象中的每個(gè)值
          obj[key] = this.cleanObject(obj[key]);
        }
      }
    },
  },
};
</script>

<style lang="scss" scoped></style>

總結(jié)

實(shí)際場景用方法二會(huì)比較好點(diǎn),如果有100個(gè)下拉框,給初始值的話,那你就要給100個(gè)內(nèi)容進(jìn)行初始化,很浪費(fèi)時(shí)間。在vue3中也存在這樣的情況,不知道這是不是resetFields遺留下來的bug,還需要看一下resetFields的源碼。具體的原理還需要大家在評(píng)論區(qū)進(jìn)行補(bǔ)充,附上vue3試驗(yàn)的代碼。

<template>
  <el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
    <el-form-item label="請(qǐng)假類型" prop="leaveType">
      <el-select v-model="form.leaveType" placeholder="請(qǐng)選擇請(qǐng)假類型">
        <el-option label="事假" value="1"></el-option>
        <el-option label="病假" value="2"></el-option>
      </el-select>
    </el-form-item>
    <el-form-item label="請(qǐng)假方式" prop="leaveWay">
      <el-select v-model="form.leaveWay" placeholder="請(qǐng)選擇請(qǐng)假方式">
        <el-option label="單次請(qǐng)假" value="1"></el-option>
        <el-option label="長期請(qǐng)假" value="2"></el-option>
      </el-select>
    </el-form-item>
    <el-form-item>
      <el-button type="primary">確定</el-button>
      <el-button @click="resetForm(form)">重置</el-button>
    </el-form-item>
  </el-form>
</template>

<script setup>
import { ref } from "vue";

const form = ref({});

const resetForm = (formEl) => {
  if (!formEl) return;
  formEl.resetFields();
};
</script>

到此這篇關(guān)于element-ui下拉輸入框+resetFields無法回顯的問題解決的文章就介紹到這了,更多相關(guān)element resetFields無法回顯內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • vue設(shè)置代理不起作用問題及解決

    vue設(shè)置代理不起作用問題及解決

    這篇文章主要介紹了vue設(shè)置代理不起作用問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 基于Vue3實(shí)現(xiàn)日歷組件的示例代碼

    基于Vue3實(shí)現(xiàn)日歷組件的示例代碼

    日歷在很多地方都可以使用的到,這篇文章主要介紹了如何利用vue3實(shí)現(xiàn)簡單的日歷控件,文中通過示例代碼講解詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Vue3?setup添加name的方法步驟

    Vue3?setup添加name的方法步驟

    如果你在 vue3 開發(fā)中使用了語法的話,對(duì)于組件的name屬性,需要做一番額外的處理,下面這篇文章主要給大家介紹了關(guān)于Vue3?setup添加name的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Vue結(jié)合原生js實(shí)現(xiàn)自定義組件自動(dòng)生成示例

    Vue結(jié)合原生js實(shí)現(xiàn)自定義組件自動(dòng)生成示例

    這篇文章主要介紹了Vue結(jié)合原生js實(shí)現(xiàn)自定義組件自動(dòng)生成示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • VUE事件處理之@click用法示例代碼

    VUE事件處理之@click用法示例代碼

    在Vue進(jìn)行前端開發(fā)中事件處理是必不可少的功能,下面這篇文章主要給大家介紹了關(guān)于VUE事件處理之@click用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • vue3.0父傳給子的值不隨父組件改變而改變問題及解決

    vue3.0父傳給子的值不隨父組件改變而改變問題及解決

    這篇文章主要介紹了vue3.0父傳給子的值不隨父組件改變而改變問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue將html頁面生成高清晰pdf文件的方法

    vue將html頁面生成高清晰pdf文件的方法

    最近工作中遇到個(gè)需求,需要實(shí)現(xiàn)個(gè)可視化圖表頁的PDF文件導(dǎo)出,所以下面這篇文章主要給大家介紹了關(guān)于利用vue如何將html頁面生成高清晰pdf文件的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • vue 使某個(gè)組件不被 keep-alive 緩存的方法

    vue 使某個(gè)組件不被 keep-alive 緩存的方法

    今天小編就為大家分享一篇vue 使某個(gè)組件不被 keep-alive 緩存的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 使用github部署前端vue項(xiàng)目

    使用github部署前端vue項(xiàng)目

    這篇文章主要為大家介紹了使用github部署前端vue項(xiàng)目過程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 解決vux 中popup 組件Mask 遮罩在最上層的問題

    解決vux 中popup 組件Mask 遮罩在最上層的問題

    這篇文章主要介紹了解決vux 中popup 組件Mask 遮罩在最上層的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評(píng)論

阳江市| 离岛区| 冕宁县| 保德县| 漾濞| 安宁市| 裕民县| 临湘市| 凌海市| 巴楚县| 唐河县| 武乡县| 肇东市| 惠安县| 兴山县| 娄底市| 巧家县| 榆林市| 双柏县| 荔浦县| 阿拉尔市| 瓦房店市| 红桥区| 丹东市| 崇文区| 甘南县| 杭锦后旗| 晋城| 巴马| 榕江县| 文山县| 广德县| 全椒县| 孟村| 松桃| 陆川县| 大石桥市| 南靖县| 沐川县| 多伦县| 东山县|