vue獲取input輸入值的問(wèn)題解決辦法
vue獲取input輸入值的問(wèn)題解決辦法
v-for里有多行input輸入框,vue怎么獲取某行的輸入的值,隨便寫(xiě)了點(diǎn)代碼,意思就是后臺(tái)返回了多行的list集合,頁(yè)面顯示多行輸入框,當(dāng)修改某行的值時(shí)進(jìn)行校驗(yàn),輸入錯(cuò)誤友好提示下,后邊加個(gè)清空按鈕,點(diǎn)擊清空當(dāng)前行數(shù)據(jù),最開(kāi)始的想法是,用v-bind:value綁定值,這樣就出現(xiàn)一種情況,頁(yè)面輸入的值無(wú)法獲取到,v-bind不會(huì)修改原始list里的值,而且ref也不能動(dòng)態(tài)綁定,ref只能全部獲取,this.$refs.itemPriceRef[],這樣取的是所有輸入框的值,是個(gè)數(shù)組,可以在提交前進(jìn)行驗(yàn)證,但是無(wú)法判斷某一行操作,并且vue操作DOM元素非常非常差,找了N多資料愣是沒(méi)找到獲取值的方法,最后發(fā)現(xiàn)用v-model直接綁定list里的值問(wèn)題解決了,這樣在修改時(shí)會(huì)直接修改list里的值,就不存在輸入值和原始值不同的問(wèn)題了,VUE在綁定值方面做挺方便的,剛開(kāi)始學(xué)vue,用的不熟練,沒(méi)想到這種方法,浪費(fèi)了好多時(shí)間,不過(guò)也學(xué)會(huì)了很多東西。
PS:總結(jié)了3種方式獲取頁(yè)面輸入框的值,1是用v-bind:value + ref方式獲取,這種只適用有具體的輸入框才行,
比如登錄頁(yè),只有帳號(hào)密碼輸入框,
2是用v-model方式獲取,這種是修改原始list值,所以在提交時(shí),還需要遍歷下原來(lái)的list,有點(diǎn)麻煩,
3是用v-model + ref 就是我寫(xiě)的這樣,和2的區(qū)別是在提交時(shí),直接用ref取值,感覺(jué)在未知數(shù)量的輸入框時(shí)更好用
自己隨便總結(jié)了下,估計(jì)在大神看來(lái)不值一提,但是對(duì)于我一個(gè)剛學(xué)習(xí)vue的人來(lái)說(shuō),確實(shí)浪費(fèi)了我挺長(zhǎng)時(shí)間,
花點(diǎn)時(shí)間記錄下來(lái),加深下印象。
<div v-model="skuList" v-for="(val, key) in skuList "> <div> <div> <span>價(jià)格:</span> <span><input type="text" v-model="val.price" ref="priceRef" v-on:change="checkPrice(val)"></span>
<pre name="code" class="html"><i v-on:click="dataClearStockPrice(val)"></i></pre></div><div><span>上限:</span><span><input class="stockTotal" type="text" v-model="val.stock" ref="totalRef"v-on:change="checkStock(val)"<span style="font-family:Arial,Helvetica,sans-serif"> ></span></span>
<pre></pre>
<p></p>
<pre></pre>
<pre name="code" class="html"><span style="font-family:Arial, Helvetica, sans-serif;"><i v-on:click="dataClearStockTotal(val)"></i>
</span></div>
</div>
</div></pre><pre name="code" class="html"></pre><pre name="code" class="html"> checkPrice:function (data) {
var priceReg = /^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/;
if(!priceReg.test(data.price)){
Toast({message: "格式錯(cuò)誤"});
data.price = "";
}
},
checkStock:function (data) {
var totalReg = /^[0-9]*$/;
if(!totalReg.test(data.stock)){
Toast({message: "格式錯(cuò)誤"});
data.stock = "";
}
},
dataClearStockPrice:function(data){
data.price = '';
},
dataClearStockTotal:function(data){
data.stock = '';
},</pre><br data-filtered="filtered">
<span style="white-space:pre" data-filtered="filtered"></span>
<pre name="code" class="html"></pre>
<p></p>
<p><br data-filtered="filtered">
</p>
如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
談?wù)剬?duì)vue響應(yīng)式數(shù)據(jù)更新的誤解
本篇文章主要介紹了談?wù)剬?duì)vue響應(yīng)式數(shù)據(jù)更新的誤解,深入了解了vue響應(yīng)式數(shù)據(jù),有興趣的可以了解一下2017-08-08
Vue.js@2.6.10更新內(nèi)置錯(cuò)誤處機(jī)制Fundebug同步支持相應(yīng)錯(cuò)誤監(jiān)控
這篇文章主要介紹了Vue.js@2.6.10更新內(nèi)置錯(cuò)誤處機(jī)制,F(xiàn)undebug同步支持相應(yīng)錯(cuò)誤監(jiān)控 ,需要的朋友可以參考下2019-05-05
vue2基本響應(yīng)式實(shí)現(xiàn)方式之讓數(shù)組也變成響應(yīng)式
這篇文章主要介紹了vue2基本響應(yīng)式實(shí)現(xiàn)方式之讓數(shù)組也變成響應(yīng)式問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
Vue+Java 通過(guò)websocket實(shí)現(xiàn)服務(wù)器與客戶端雙向通信操作
這篇文章主要介紹了Vue+Java 通過(guò)websocket實(shí)現(xiàn)服務(wù)器與客戶端雙向通信操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
vue3+elementPlus項(xiàng)目支持設(shè)置默認(rèn)附件方式
這篇文章主要介紹了vue3+elementPlus項(xiàng)目支持設(shè)置默認(rèn)附件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
vue移動(dòng)端城市三級(jí)聯(lián)動(dòng)組件使用詳解
這篇文章主要為大家詳細(xì)介紹了vue移動(dòng)端城市三級(jí)聯(lián)動(dòng)組件的使用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
vue+animation動(dòng)畫(huà)實(shí)現(xiàn)跑馬燈效果
這篇文章主要為大家詳細(xì)介紹了vue+animation動(dòng)畫(huà)實(shí)現(xiàn)跑馬燈效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
Vue3實(shí)現(xiàn)檢測(cè)密碼強(qiáng)度值功能
本文將演示如何使用Vue?3實(shí)現(xiàn)一個(gè)簡(jiǎn)單的密碼強(qiáng)度檢測(cè)功能,通過(guò)實(shí)時(shí)反饋,幫助用戶創(chuàng)建更安全的密碼,從而提升整體系統(tǒng)的安全性,需要的朋友可以參考下2024-06-06
Vue項(xiàng)目報(bào)錯(cuò):parseComponent問(wèn)題及解決
這篇文章主要介紹了Vue項(xiàng)目報(bào)錯(cuò):parseComponent問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05

