解決vue頁面注入js修改input值問題
解決vue頁面注入js修改input值
一般會直接這樣寫
let zz = document.getElementsByClassName('el-input__inner')[0];
zz.value = 'test';但在某些前端框架,例如Vue之類的,Vue的input弄個雙向綁定啥的,此時我們用原生的JS企圖去控制輸入框的值就會出現(xiàn)無效的情況(明明input上有數(shù)字或者字符但是點擊按鈕就是說你沒填內(nèi)容)。
只有當(dāng)接收到鍵盤的按鍵(隨便哪個鍵盤的按鍵消息),才會觸發(fā)input和change事件,進而把輸入框中的value賦值給預(yù)設(shè)的相關(guān)變量,到這一步才算走完整個設(shè)置value的過程。
所以如果想給這類加料的輸入框或者選擇框用原生JS賦值,設(shè)置vlaue屬性過后就必須手動觸發(fā)一下input或change事件。
下面是例子
var zz = document.getElementsByClassName('el-input__inner')[0]
zz.value = 'test'
var event = document.createEvent('Event');
event.initEvent("input", true, true);//如果是select選擇框把"input"改成"change"
event.eventType = 'message'
zz.dispatchEvent(event)vue循環(huán)input框且對應(yīng)修改值
效果:

<li>
<span>實體名稱</span>:
<span>{{ newKnowName }}</span>
</li>
<li>
<span>實體標簽</span>: <span> {{ newKnowLabel }}</span>
</li>
<li>
<span>實體屬性</span>:
<ul>
<li v-for="(item, index) in newKnowPros" :key="index">
<span>{{ item.key }}</span>
:
<span><input type="text" v-model="item.value"/></span>
</li>
</ul>
</li>
//入庫
mergeEntity() {
console.log(this.newKnowPros); //可直接獲取綁定數(shù)組修改后的值
},總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue?eslint報錯error?"Component?name?"*****"
這篇文章主要給大家介紹了關(guān)于vue?eslint報錯error?“Component?name?“*****“?should?always?be?multi-word”的解決方法,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下2022-09-09
element?ui設(shè)置table自適應(yīng)表格寬,不自動換行問題
這篇文章主要介紹了element?ui設(shè)置table自適應(yīng)表格寬,不自動換行問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
vue自定v-model實現(xiàn)表單數(shù)據(jù)雙向綁定問題
vue.js的一大功能便是實現(xiàn)數(shù)據(jù)的雙向綁定。這篇文章主要介紹了vue自定v-model實現(xiàn) 表單數(shù)據(jù)雙向綁定的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-09-09
vue3.0找不到模塊“./App.vue”或其相應(yīng)的類型聲明(多種情況分析)
這篇文章主要介紹了vue3.0找不到模塊“./App.vue”或其相應(yīng)的類型聲明,報錯原因是typescript?只能理解?.ts?文件,無法理解?.vue文件,本文通過多種情況分析給大家詳細講解,需要的朋友可以參考下2023-01-01
Vue中使用Echarts可視化圖表寬度自適應(yīng)的完美解決方案
這篇文章主要介紹了Vue中使用Echarts可視化圖表,寬度自適應(yīng)解決方案,我的解決方案是,在放置Echarts的容器(div)外層再套一層容器(div),外層容器寬度固定設(shè)置手機屏幕寬,感興趣的朋友跟隨小編一起看看吧2022-09-09

