首頁 web前端 js教程 Element UI自動完成組件與表單校驗衝突:如何解決表單校驗失敗的問題?

Element UI自動完成組件與表單校驗衝突:如何解決表單校驗失敗的問題?

Apr 04, 2025 pm 07:03 PM
vue 解決方法 red

Element UI自動完成組件與表單校驗衝突:如何解決表單校驗失敗的問題?

Element UI自動完成組件與表單校驗衝突的解決方案

在使用Element UI的el-autocomplete組件時,經常會遇到表單校驗失敗的問題:即使用戶已選擇下拉選項,輸入框顯示正確值,表單仍提示未填寫。本文分析此問題並提供解決方案。

問題描述:

表單使用el-autocomplete組件實現用戶名選擇,並用el-form-itemprop屬性進行校驗。 el-autocompleteselect事件綁定了處理用戶選擇邏輯的函數。然而,用戶選擇後,表單校驗仍失敗,提示“請輸入用戶名”。

代碼示例:

組件代碼:

<el-form-item label="用户名" prop="username">
  <el-autocomplete :fetch-suggestions="querysearch" class="usernameinput" placeholder="选择或输入用户名" v-model="selectuserinfo">
  </el-autocomplete>
</el-form-item>
登入後複製

校驗規則:

 rules: {
  username: [{ required: true, message: '請輸入用戶名', trigger: 'blur' }],
  password: [{ required: true, message: '請輸入密碼', trigger: 'blur' }]
},
登入後複製

相關函數:

 selectoption(params) {
  console.log(this.selectuserinfo);
  this.loginform.username = params.username;
  this.loginform.password = atob(params.password);
},
onblur() {
  console.log('blur');
  console.log(this.loginform.username, this.selectuserinfo);
  this.loginform.username = this.selectuserinfo;
},
登入後複製

問題分析與解決方法:

問題根源在於直接賦值this.loginform.username = params.username可能破壞Vue的響應式機制。 Vue的響應式系統依賴數據變化觸發視圖更新和表單校驗。直接修改對象屬性,Vue無法追踪變化,導致表單校驗無法更新。

解決方案:

  1. 確保loginform.username響應式:如果loginform是普通JavaScript對象,直接賦值不會觸發Vue響應式更新。使用Vue.set方法或對象展開運算符更新loginform.username ,確保Vue追踪數據變化。

     selectoption(params) {
      this.$set(this.loginform, 'username', params.username); // 使用Vue.set
      this.loginform.password = atob(params.password);
    }
    登入後複製

    或:

     selectoption(params) {
      this.loginForm = { ...this.loginForm, username: params.username }; // 對象展開運算符this.loginForm.password = atob(params.password);
    }
    登入後複製
  2. 檢查trigger屬性: trigger: 'blur'僅在輸入框失去焦點時觸發校驗。 el-autocomplete的選擇操作可能不會觸發blur事件。嘗試將trigger屬性修改為'change'或同時使用'blur''change' ,或根據實際情況選擇合適的觸發事件。

  3. 檢查v-model綁定和loginform初始化:確保v-model綁定數據正確,且loginform對象正確初始化為響應式對象。

通過以上方法,即可解決Element UI自動完成組件與表單校驗衝突的問題,確保表單校驗的準確性。

以上是Element UI自動完成組件與表單校驗衝突:如何解決表單校驗失敗的問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1327
25
PHP教程
1273
29
C# 教程
1253
24
如何利用Redis緩存方案高效實現產品排行榜列表的需求? 如何利用Redis緩存方案高效實現產品排行榜列表的需求? Apr 19, 2025 pm 11:36 PM

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...

Spring Boot中OAuth2Authorization對象Redis緩存失敗怎麼辦? Spring Boot中OAuth2Authorization對象Redis緩存失敗怎麼辦? Apr 19, 2025 pm 08:03 PM

SpringBoot中使用Redis緩存OAuth2Authorization對像在SpringBoot應用中,使用SpringSecurityOAuth2AuthorizationServer...

歐易交易所app官網下載蘋果手機下載 歐易交易所app官網下載蘋果手機下載 Apr 28, 2025 pm 06:57 PM

歐易交易所app支持蘋果手機下載,訪問官網,點擊“蘋果手機”選項,在App Store中獲取並安裝,註冊或登錄後即可進行加密貨幣交易。

使用RedisTemplate進行批量查詢時,為什麼返回值會為空? 使用RedisTemplate進行批量查詢時,為什麼返回值會為空? Apr 19, 2025 pm 10:15 PM

使用RedisTemplate進行批量查詢時為何返回值為空?在使用RedisTemplate進行批量查詢操作時,可能會遇到返回的結果�...

如何理解C  中的DMA操作? 如何理解C 中的DMA操作? Apr 28, 2025 pm 10:09 PM

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

如何在Java中解析next-auth生成的JWT token並獲取其中的信息? 如何在Java中解析next-auth生成的JWT token並獲取其中的信息? Apr 19, 2025 pm 08:21 PM

在處理next-auth生成的JWT...

See all articles