vue通過for循環生成input框后雙向綁定失效問題

有些時候頁面上有太多的表單元素,一個個的寫太過繁瑣,拿 input 框舉例,眾多的 input 框,無非就是輸入框前的說明和 input 框的 name 屬性不一樣

<el-form :inline="true" :model="formInline" size="mini" class="demo-form-inline"><el-form-item label="姓名"><el-input v-model="formInline.name1" placeholder="請輸入姓名"></el-input></el-form-item><!-- 當然,這里的性別應該下拉框,這里只做演示 --><el-form-item label="性別"><el-input v-model="formInline.sex1" placeholder="請選擇性別"></el-input></el-form-item><el-form-item label="年齡"><el-input v-model="formInline.age1" placeholder="請輸入年齡"></el-input></el-form-item>
</el-form>

既然這樣,何不弄一個數組,通過 for 循環遍歷出來,豈不是更省事?經過一番嘗試,終于成功,特此記錄,便于后續回顧及幫助到有需要的人。

1、通過 for 循環批量生成表單元素

模擬如下數據:

export default {name: 'BasicInfo',components: {},data() {return {formInline: {},formData: [{"id":"1","label":"姓名","tableColumn":"name","placeholder":""},{"id":"2","label":"性別","tableColumn":"sex","placeholder":"請選擇性別"},{"id":"3","label":"年齡","tableColumn":"age","placeholder":"請輸入年齡"}]}},
}

頁面也改成 v-for 來遍歷

<el-form :inline="true" :model="formInline" size="mini" class="demo-form-inline"><el-form-item v-for="item in formData" :index="item.id" :key="item.id" :label="item.label"><el-input v-model="item.tableColumn" :placeholder="item.placeholder"></el-input></el-form-item>
</el-form>

2、發現呈現的效果與預期的不符合

在這里插入圖片描述
參考了幾篇網友的解答
vue.js中 v-for 下的v-model 雙向綁定失效的解決方法
v-for渲染input的坑!!!vue中v-for出來的input如何實現雙向綁定
vue for循環v-model雙向綁定對象/數組失效

后面自己試了下,改了下 v-bind 處的寫法后,就可以了

3、修改 v-bind 處的寫法

<el-form :inline="true" :model="formInline" size="mini" class="demo-form-inline"><el-form-item v-for="item in formData" :index="item.id" :key="item.id" :label="item.label"><el-input v-model="formInline[item.tableColumn]" :placeholder="item.placeholder"></el-input></el-form-item>
</el-form>

4、最終效果與預期一致:

借助 Vue 開發工具可以看到,已經實現了雙向綁定

借助 Vue 開發工具可以看到,已經實現了雙向綁定

5、探索其他問題

看了前面幾篇博客,有的往 標簽里動態綁定了一個 prop 屬性,剛開始不清楚啥意思,看了下文檔說用于表單校驗和重置表單的
在這里插入圖片描述
于是就做了下測試:

<el-form-item v-for="item in formData" :index="item.id" :key="item.id" :label="item.label":prop="item.tableColumn":required="item.required"inline-message="true":rules="{ required: true, message: `${item.label}不能為空`}"><!-- :rules="[{ required: true, message: '年齡不能為空'},{ type: 'number', message: '年齡必須為數字值'},{ required: true, message: '請輸入郵箱地址', trigger: 'blur' },{ type: 'email', message: '請輸入正確的郵箱地址', trigger: ['blur', 'change'] }]" --><el-input v-model="formInline[item.tableColumn]" :placeholder="item.placeholder"></el-input></el-form-item>

結果證實了
在這里插入圖片描述

6、綁定 prop 屬性后瀏覽器會有莫名其妙的紅色警告問題

在這里插入圖片描述
此問題參考了這篇文章:
The label’s for attribute doesn’t match any element id…的解決辦法
在這里插入圖片描述
打開瀏覽器開發者工具,可以看到,vue文件里的 最終被解析成了

<el-input v-model="formInline[item.tableColumn]" :placeholder="item.placeholder":id="item.tableColumn"
></el-input>

The End!感謝參考的這幾篇文章的作者,正是因為有你們的分享,像我這樣的小白遇到問題時才得已解決,所以我也向你們學習,將遇到的問題記錄下來,以加深印象,也能讓需要的人得到參考!
由于時間有限,此例子可以做得更好,比如:動態實現下拉框、多選等…,類似代碼生成器那種,有時間了琢磨下后再記錄!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14519.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14519.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14519.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

01-05.Vue自定義過濾器

目錄 前言過濾器的概念過濾器的基本使用給過濾器添加多個參數 前言 我們接著上一篇文章01-04.Vue的使用示例&#xff1a;列表功能 來講。 下一篇文章 02-Vue實例的生命周期函數 過濾器的概念 概念&#xff1a;Vue.js 允許我們自定義過濾器&#xff0c;可被用作一些常見的文本…

軟件模塊的耦合

軟件模塊的耦合 耦合是指軟件模塊之間的依賴程度&#xff0c;耦合越低&#xff0c;模塊之間的獨立性越高&#xff0c;軟件的可維護性、可重用性也越高。下面是幾種常見的耦合類型的概念&#xff1a; 數據耦合&#xff08;Data Coupling&#xff09;&#xff1a; 當一個模塊通…

Python ? 使用代碼解決今天中午吃什么的重大生存問題

1. 環境安裝 安裝Python代碼環境參考文檔 2. 代碼塊 import random# 準備一下你想吃的東西 hot ["蘭州拉面", "爆肚面", "黃燜雞", "麻辣香鍋", "米線", "麻食", "羊肉泡饃", "肚絲/羊血湯&qu…

doxygen 1.11.0 使用詳解(九)——包含公式

目錄 Doxygen allows you to put LATEX formulas in the output (this works only for the HTML, LATEX and RTF output. To be able to include formulas (as images) in the HTML and RTF documentation, you will also need to have the following tools installed latex: …

定時監測服務器磁盤是否超過閾值,超過就刪除docker 鏡像

達到指定百分比 刪除鏡像腳本 df -h 查找到 內存占用信息 &#xff0c;得到的 文件系統名稱是 overlay的&#xff0c;Use% 達到70就進行刪除docker 鏡像 #!/bin/bash# 設置磁盤使用閾值 THRESHOLD70# 獲取 overlay 文件系統的磁盤使用百分比 DISK_USAGES$(df -h | grep overl…

利用sentence bert 實現語義向量搜索

目錄 基于pytorch的中文語言模型預訓練:https://github.com/zhusleep/pytorch_chinese_lm_pretrain/tree/master sentence_emb.py search_faiss_robert768.py faiss_index.py gen_vec_save2_faiss.py 基于pytorch的中文語言模型預訓練:https://github.com/zhusleep/pytorch_…

[協議]stm32讀取AHT20程序示例

AHT20溫度傳感器使用程序&#xff1a; 使用i2c讀取溫度傳感器數據很簡單&#xff0c;但市面上有至少兩個手冊&#xff0c;我這個對應的手冊貼出來&#xff1a; main: #include "stm32f10x.h" // Device header #include <stdint.h> #includ…

數智賦能內澇治理,四信城市排水防澇解決方案保障城市安全運行

由強降雨、臺風造成城市低洼處出現大量積水、內澇的情況時有發生&#xff0c;給人們出行帶來了極大不便和安全隱患&#xff0c;甚至危及群眾生命財產安全。 為降低內澇造成的損失&#xff0c;一方面我們要大力加強城市排水基礎設施的建設&#xff1b;另一方面要全面掌握城市內澇…

U-Boot menu菜單分析

文章目錄 前言目標環境背景U-Boot如何自動調起菜單U-Boot添加自定義命令實踐 前言 在某個廠家的開發板中&#xff0c;在進入它的U-Boot后&#xff0c;會自動彈出一個菜單頁面&#xff0c;輸入對應的選項就會執行對應的功能。如SD卡鏡像更新、顯示設置等&#xff1a; 目標 本…

docker命令詳解大全

Docker是一種流行的容器化平臺&#xff0c;用于快速部署應用程序并管理容器的生命周期。以下是一些常用的Docker命令及其用途的概述&#xff1a; docker run&#xff1a;創建一個新容器并運行一個命令。docker ps&#xff1a;列出當前運行的容器。docker stop&#xff1a;停止…

Unity射擊游戲開發教程:(20)增加護盾強度

在本文中,我們將增強護盾,使其在受到超過 1 次攻擊后才會被禁用。 Player 腳本具有 Shield PowerUp 方法,我們需要調整盾牌在被摧毀之前可以承受的數量,因此我們將聲明一個 int 變量來設置盾牌可以承受的擊中數量。

微信小程序畫布顯示圖片繪制矩形選區

wxml <view class"page-body"><!-- 畫布 --><view class"page-body-wrapper"><canvas canvas-id"myCanvas" type"2d" id"myCanvas" classmyCanvas bindtouchstart"touchStart" bindtouchmo…

OpenFeign快速入門 替代RestTemplate

1.引入依賴 <!--openFeign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--負載均衡器--><dependency><groupId>org.spr…

【全網最全】2024電工杯數學建模B題問題一14頁論文+19建模過程代碼+py代碼+2種保獎思路+數據等(后續會更新成品論文等)

您的點贊收藏是我繼續更新的最大動力&#xff01; 一定要點擊如下的卡片鏈接&#xff0c;那是獲取資料的入口&#xff01; 【全網最全】2024電工杯數學建模B題問一論文19建模過程代碼py代碼2種保獎思路數據等&#xff08;后續會更新成品論文等&#xff09;「首先來看看目前已…

C++中的四種類型轉換運算符

隱式類型轉換是安全的&#xff0c;顯式類型轉換是有風險的&#xff0c;C語言之所以增加強制類型轉換的語法&#xff0c;就是為了強調風險&#xff0c;讓程序員意識到自己在做什么。但是&#xff0c;這種強調風險的方式還是比較粗放&#xff0c;粒度比較大&#xff0c;它并沒有表…

MySQL中如何知道數據庫表中所有表的字段的排序規則是什么?

查看所有表的字段及其排序規則&#xff1a; 你可以查詢 information_schema 數據庫中的 COLUMNS 表&#xff0c;來獲取所有表的字段及其排序規則。以下是一個示例查詢&#xff1a; SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLLATION_NAME FROM information_schema.COL…

【設計模式深度剖析】【5】【創建型】【原型模式】| 類比群發郵件,加深理解

&#x1f448;?上一篇:建造者模式 | 下一篇:創建型設計模式對比&#x1f449;? 目錄 原型模式(Prototype Pattern)概覽定義英文原話直譯 3個角色類圖1. 抽象原型&#xff08;Prototype&#xff09;角色2. 具體原型&#xff08;Concrete Prototype&#xff09;角色3. 客戶…

必示科技參與智能運維國家標準預研線下編寫會議并做主題分享

近日&#xff0c;《信息技術服務 智能運維 第3部分&#xff1a;算法治理》&#xff08;擬定名&#xff09;國家標準預研階段第一次編寫工作會議在杭州舉行。本次會議由浙商證券承辦。 此次編寫有來自銀行、證券、保險、通信、高校研究機構、互聯網以及技術方等29家單位&#xf…

在云計算環境中,如何實現資源的高效分配和調度?

在云計算環境中&#xff0c;可以通過以下幾種方法實現資源的高效分配和調度&#xff1a; 負載均衡&#xff1a;通過負載均衡算法&#xff0c;將云計算集群的負載均勻地分配到各個節點上。常見的負載均衡算法有輪詢、最小連接數、最短響應時間等。 資源調度算法&#xff1a;為了…

Linux基礎(四):Linux系統文件類型與文件權限

各位看官&#xff0c;好久不見&#xff0c;在正式介紹Linux的基本命令之前&#xff0c;我們首先了解一下&#xff0c;關于文件的知識。 目錄 一、文件類型 二、文件權限 2.1 文件訪問者的分類 2.2 文件權限 2.2.1 文件的基本權限 2.2.2 文件權限值的表示方法 三、修改文…