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.效果



注意:這個案例只是簡單的再前端輸出獲取的表單內(nèi)容,并沒有提交到后臺
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輸入的字符串轉(zhuǎn)換為數(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ù)轉(zhuǎn)換為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:輸入字符串轉(zhuǎn)為有效的數(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日期清空時不回顯的解決

