解決vue頁面注入js修改input值問題
更新時間:2024年03月24日 10:25:06 作者:想要打代碼
這篇文章主要介紹了解決vue頁面注入js修改input值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
解決vue頁面注入js修改input值
一般會直接這樣寫
let zz = document.getElementsByClassName('el-input__inner')[0]; zz.value = 'test';
但在某些前端框架,例如Vue之類的,Vue的input弄個雙向綁定啥的,此時我們用原生的JS企圖去控制輸入框的值就會出現無效的情況(明明input上有數字或者字符但是點擊按鈕就是說你沒填內容)。
只有當接收到鍵盤的按鍵(隨便哪個鍵盤的按鍵消息),才會觸發(fā)input和change事件,進而把輸入框中的value賦值給預設的相關變量,到這一步才算走完整個設置value的過程。
所以如果想給這類加料的輸入框或者選擇框用原生JS賦值,設置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框且對應修改值
效果:
<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); //可直接獲取綁定數組修改后的值 },
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
unplugin-auto-import與unplugin-vue-components安裝問題解析
這篇文章主要為大家介紹了unplugin-auto-import與unplugin-vue-components問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02