vue如何實現(xiàn)表單多選并且獲取其中的值
vue實現(xiàn)表單多選并且獲取其中的值
說明
使用 v-model 指令 結合 name / value 使用
需要你的 data 里面的數(shù)據(jù)類型為 數(shù)組
代碼說明
為什么會是 v-model.number ?
這是將它的值固定為 數(shù)字類型,否則你獲取到的就是字符串
<div id="root"> <input type="checkbox" v-model.number="hobby" name="hobby" value="1">學習 <input type="checkbox" v-model.number="hobby" name="hobby" value="2">游泳 <input type="checkbox" v-model.number="hobby" name="hobby" value="3">下棋 <input type="checkbox" v-model.number="hobby" name="hobby" value="4">乒乓球 <div>{{hobby}}</div> </div> </body> <script> new Vue({ el:"#root", data:{ hobby:[4] //默認的選擇第四個,你可以不選默認項 }, }) </script>
它現(xiàn)在的值就是 data 數(shù)組中的數(shù)據(jù),想要獲得數(shù)據(jù)直接使用這個數(shù)組
vue獲取表單數(shù)據(jù)——input、radio、checkbox、select、textarea
獲取表單數(shù)據(jù)(案例)
1.效果
注意:這個案例只是簡單的再前端輸出獲取的表單內容,并沒有提交到后臺
2.代碼
<div class="root"> <form @submit.prevent="demo"> <!-- trim去掉首尾空格,中間的空格去不掉 --> 賬號:<input type="text" v-model.trim="userInfo.account"> <br><br> 密碼:<input type="text" v-model="userInfo.password"><br><br> <!-- number輸入的字符串轉換為數(shù)字 --> 年齡:<input type="number" v-model.number="userInfo.age"><br><br> 性別: 男<input type="radio" v-model="userInfo.sex" name="sex" value="男"> 女<input type="radio" v-model="userInfo.sex" name="sex" value="女"><br><br> 愛好: 學習<input type="checkbox" v-model="userInfo.hobby" value="學習"> 打游戲<input type="checkbox" v-model="userInfo.hobby" value="打游戲"> 吃飯<input type="checkbox" v-model="userInfo.hobby" value="吃飯"> <br><br> 選擇地址: <select v-model="userInfo.city"> <option value="北京">北京</option> <option value="上海">上海</option> <option value="深圳">深圳</option> <option value="武漢">武漢</option> </select> <br><br> 其他信息: <!-- lazy失去焦點再獲取數(shù)據(jù) --> <textarea v-model.lazy="userInfo.other" cols="30" rows="10"></textarea> <br><br> <input type="checkbox" v-model="userInfo.agree"> 閱讀并接受<a href="www.baidu.com" rel="external nofollow" >《用戶協(xié)議》</a> <button>提交</button> </form> </div>
new Vue({ el: '.root', data() { return { userInfo: { account: '', password: '', sex: '', hobby: [], city: '北京', other: '', agree: '', age: '' } } }, methods: { demo() { //JSON.stringify() 將數(shù)據(jù)轉換為json字符串 console.log(JSON.stringify(this.userInfo)); } }, })
心得
收集表單數(shù)據(jù):
1.<input type=“text”/>,則v-model收集的是value值,用戶輸入的就是value值。
<input type=“radio”/>,則v-model收集的是value值,且要給標簽配置value值。
2.<input type=“checkbox”/>沒有配置input的value屬性,那么收集的就是checked(勾選 or 未勾選,是布爾值)
3.配置input的value屬性:
- (1)v-model的初始值是非數(shù)組,那么收集的就是checked(勾選 or 未勾選,是布爾值)
- (2)v-model的初始值是數(shù)組,那么收集的的就是value組成的數(shù)組
4.備注:v-model的三個修飾符:
lazy
:失去焦點再收集數(shù)據(jù)number
:輸入字符串轉為有效的數(shù)字trim
:輸入首尾空格過濾
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
對Vue2 自定義全局指令Vue.directive和指令的生命周期介紹
今天小編就為大家分享一篇對Vue2 自定義全局指令Vue.directive和指令的生命周期介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08

vue使用keep-alive保持滾動條位置的實現(xiàn)方法

vue項目打包部署到nginx后css樣式失效的問題及解決方法

vue中el-date-picker type=daterange日期清空時不回顯的解決