时间:2017.10.24 发布人:mylover905
已解决问题
谷歌mylover905用户在2017.10.24提交了关于“
庆余年vue获取input输入值的问题解决办法”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-03-12T20:36:32。希望大家能够帮助她。
详细问题描述及疑问:期待您的答案,你无异于雪中送炭,让我感激涕零
!
希望以下的回答,能够帮助你。
第1个回答
用户名:lan2sunshine
vue获取in使外亚了胶保调今点put输入值的问题解决办法
v-for里有多行input输入框,vue怎么获取某行的输入的值,随便写了点代码,意思就是后台返回了多行的list集合,页面显示多行输入框,当修改某行的值问答时进行校验,输入错误友好提示下,后边加个清空按游总相外山束川零钮,点击清空当前行**,最开始的想法是,用v-bind:占儿照行职缩沿原笔夜value绑定值,这样就出现一种情况,页面输入的值无法获取到,v-bind不会修改原始业海把该原路呼资list里的值,而且决思或溶放胜飞你常理ref也不能动态绑定,ref只能全部获取,this.$refs.ite达mPriceRef[],这样取的是所有输入框的值,是个数组,可以在提交前测影系州输色断进行验,但是无法判断某一行操啊作,并且vue操作DOM元素非常非常差,找了N多**愣是没找到获取值的方法,最后发现用v-model直接绑定list里的值问题解决了,这样在修改时会直接修改list里的值,就不存在输入值和原始值不同的问题了,VUE在绑定值方面做挺方便的,刚开始学vue,用的不熟练,没想到这种方神富多终哪进组既法,浪费了好多时间,不过也学会了很多东西。
PS:总结了3种方式获取页面输入框的值,1是用v-bind:value+r学那命根素脚溶ef方式获取,这种只适用有具体的输入框才行,
比如登录页,只有帐号密码输入框,
2是用v-model方式获取,这种是修此更再宗犯终况改原始list值,接批措争振茶尽密外育花所以在提交时,还需要遍历下原来的list,有点麻烦,
3是用v-model+ref就是我写的这样,和2的区别是在提交时,直接用ref取值,感觉在未知数量的输入框时更好用
自己随便总结了下,估计在大神看来不值一提,但是对于我一个刚学习vue的人来说,确实浪费了我挺长时间,
花点时间记录下来,加深下印象。
<divv-mode
l="skuList"v-for="(val,key)inskuList"><div><div><span>价格:</span><sp等审裂演别著an><inputtype="text"v-model="val.price"奏有革方哪殖北打苦ref="priceRef"v-on:change="checkPrice(val)"></span><prename="code"class="html"><iv-on:click="dataClearStockPrice(val)"></i></pre></div><div><span>上限:</span><span><inputc少lass="stockTotal"type="text"v-model="val.stock"ref="to跑无货范担随talRef"v-on:change="checkStock(val)"<spansty爱le="font-family:Arial,h**elvetica,sans-serif">></span></span><pre></pre><p></p><pre></pre><prename="code"class="html"><spanstyle="font-family:Arial,h**elvetica,sans-serif;"><iv-on:click="dataClearStockTotal(val)"></i></span></div></div></div></pre><prename="code"class="html"></pre><prename="code"class="html">checkPrice:function(data){varpriceReg=/^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/;if(!priceReg.test(data.price)){Toast({message:"格式错误"});data.price="";}},checkStock:function(data){vartotalReg=/^[0-9]*$/;if(!totalReg.test(data.stock)){Toast({message:"格式错误"});data.stock="";}},dataClearStockPrice:function(data){data.price='';},dataClearStockTotal:function(data){data.stock='';},</pre><brdata-filtered="filtered"><spanstyle="white-space:pre"data-filtered="filtered"></span><prename="code"class="html"></pre><p></p><p><brdata-filtered="filtered"></p>如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!