Vue.js表單標(biāo)簽中的單選按鈕、復(fù)選按鈕和下拉列表的取值問題
Vue.js可以很方便的實現(xiàn)數(shù)據(jù)雙向綁定,所以在處理表單,人機(jī)交互方面具有很大的優(yōu)勢。下面給大家介紹Vue.js表單標(biāo)簽中的單選按鈕、復(fù)選按鈕和下拉列表的取值問題。
摘要: 表單標(biāo)簽取值問題中,單選按鈕、復(fù)選按鈕和下拉列表都比較特殊。這里總結(jié)一下vue.js中關(guān)于單選按鈕、復(fù)選按鈕和下拉列表不同情況的取值特殊性問題。
表單標(biāo)簽取值問題中,單選按鈕、復(fù)選按鈕和下拉列表都比較特殊。這里總結(jié)一下vue.js中關(guān)于單選按鈕、復(fù)選按鈕和下拉列表不同情況的取值特殊性問題。
一、單選按鈕
單選按鈕:單選按鈕用 v-model 綁定填值屬性用來表示checked,用于判斷是否選中。
當(dāng)單選按鈕沒寫value值時,在 vue.js 中將值賦為null。
在普通標(biāo)簽中,當(dāng)沒寫name時,html 會默認(rèn)將沒寫name 的單選按鈕分為一組;
在vue中,即使沒寫name,只要單選按鈕v-model綁定了同一個變量(如:gender),這些按鈕也會被分為一組。但是習(xí)慣上,我們還是也寫上name。
在data中定義的變量gender的值將影響到單選按鈕的默認(rèn)選項,如: 本例子中g(shù)ender:"女",默認(rèn)選擇女。
js部分代碼:
window.onload = function (){
new Vue({
el:"#app",
data:{
gender:"女"
}
});
}
html部分代碼:
<body> <div id="app"> <!-- 單選按鈕:單選按鈕用 v-model 綁定填值屬性用來表示checked,用于判斷是否選中。 當(dāng)單選按鈕沒寫value值時,在vue中將值賦為null 在普通標(biāo)簽中,當(dāng)沒寫name時,html 會默認(rèn)將沒寫name 的單選按鈕分為一組; 在vue中,即使沒寫name,只要單選按鈕v-model綁定了同一個變量(如:gender),這些按鈕也會被分為一組。
但是習(xí)慣上,我們還是也寫上name
在data中定義的變量gender的值將影響到單選按鈕的默認(rèn)選項,如: 本例子中g(shù)ender:"女",默認(rèn)選擇女。
--> <input type="radio" id="man" name="gender" value="男" v-model="gender"> <label for="man">男</label> <input type="radio" id="woman" name="gender" value="女" v-model="gender"> <label for="woman">女</label> </div> </body>
二、復(fù)選按鈕
復(fù)選按鈕:單選按鈕用 v-model 綁定填值屬性用來表示checked,用于判斷是否選中。
當(dāng)多選按鈕沒寫value值時,在 vue.js 中將值賦為null。
vue.js對于復(fù)選按鈕如何取值取決于 v-model 綁定的變量的類型。
1、基本類型
初始化時,v-model 綁定的是任意的基本類型(Number、String、Boolean、Null、Undefined),取值時會默認(rèn)轉(zhuǎn)為Boolean類型,true時表示選中,false表示未選中。
js段代碼:
window.onload = function (){
new Vue({
el:"#app",
data:{
hobbies01:"",
hobbies02:"...",
hobbies03:false
}
});
}
html段代碼:
<body> <div id="app"> <!-- v-model 綁定的是基本類型 --> <input type="checkbox" name="hobbies" id="box01" value="敲代碼" v-model="hobbies01"> <label for="box01">敲代碼</label> <input type="checkbox" name="hobbies" id="box02" value="寫代碼" v-model="hobbies02"> <label for="box02">寫代碼</label> <input type="checkbox" name="hobbies" id="box03" value="擼代碼" v-model="hobbies03"> <label for="box03">擼代碼</label> <hr/> </div> </body>
效果截圖:

初始化時,hobbies01值為空字符串轉(zhuǎn)化為Boolean類型時false,所以未選中;hobbies02值為字符串“....”,轉(zhuǎn)化為Boolean類型是true,所以默認(rèn)選中;hobbies03默認(rèn)值是false,所以初始化時未選中。
此后,每次點擊多選按鈕,hobbies01、hobbies02、hobbies03的值都是 true | false 變化。
2、數(shù)組
初始化時,v-model 綁定的變量是數(shù)組類型時。vue 認(rèn)為這個復(fù)選按鈕是用于獲取值,會以選擇(鼠標(biāo)點擊)的順序?qū)?yīng)的值寫入到數(shù)組中。
js代碼段:
window.onload = function (){
new Vue({
el:"#app",
data:{
hobbies:[]
}
});
}
html代碼段:
<body> <div id="app"> <!-- v-model 綁定時數(shù)組 --> <input type="checkbox" name="hobbies" id="box01" value="敲代碼" v-model="hobbies"> <label for="box01">敲代碼</label> <input type="checkbox" name="hobbies" id="box02" value="寫代碼" v-model="hobbies"> <label for="box02">寫代碼</label> <input type="checkbox" name="hobbies" id="box03" value="擼代碼" v-model="hobbies"> <label for="box03">擼代碼</label> </div> </body>
效果截圖:

初始化時 hobbies 是一個空數(shù)組。注意鼠標(biāo)點擊順序和 hobbies 值的對應(yīng)變化。
三、下拉列表
下拉列表:下拉列表中 v-model 寫在下拉列表的標(biāo)簽中 <select>標(biāo)簽中。
根據(jù)指定值選擇對應(yīng)<option> 添加選中狀態(tài)。
option 沒有value屬性 以 option 正反標(biāo)簽中的值 作為value。
3.1 下拉列表
js代碼段:
window.onload = function (){
new Vue({
el:"#app",
data:{
s:""
}
});
}
html代碼段:
<body> <div id="app"> <select v-model="s"> <option value="s1">小學(xué)</option> <option value="s2">中學(xué)</option> <option value="s3">大學(xué)</option> <option itany="itany" value="">請選擇</option> </select> </div> </body>
結(jié)果分析:
因為變量 s 的初始值是空字符串,所以默認(rèn)選擇 “請選擇選項”(可以根據(jù)s的初識值改變默認(rèn)選項)。當(dāng)選擇其他option時,s 的值會隨之改變(字符串:"s1"/"s2"/"s3")。
3.2 未寫value值
當(dāng)未寫 value 時, s 的值會變成 “小學(xué)”/“中學(xué)”/“大學(xué)”。
3.3 多選下拉列表
multiple關(guān)鍵字,按住 ctrl 鍵進(jìn)行多選。注意此時 model 綁定的變量應(yīng)該是數(shù)組。
總結(jié)
以上所述是小編給大家介紹的Vue.js表單標(biāo)簽中的單選按鈕、復(fù)選按鈕和下拉列表的取值問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
vue短信驗證性能優(yōu)化如何寫入localstorage中
這篇文章主要介紹了vue短信驗證性能優(yōu)化寫入localstorage中的方法,解決這個問題需要把時間都寫到localstorage里面去,具體解決方法大家參考下本文2018-04-04
詳解Vue webapp項目通過HBulider打包原生APP
這篇文章主要介紹了詳解Vue webapp項目通過HBulider打包原生APP,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
Vue.js結(jié)合bootstrap實現(xiàn)分頁控件
這篇文章主要為大家詳細(xì)介紹了Vue.js 合bootstrap實現(xiàn)分頁控件的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03
解決vue接口數(shù)據(jù)賦值給data沒有反應(yīng)的問題
今天小編就為大家分享一篇解決vue接口數(shù)據(jù)賦值給data沒有反應(yīng)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
vue2中的keep-alive使用總結(jié)及注意事項
vue2.0提供了一個keep-alive組件用來緩存組件,避免多次加載相應(yīng)的組件,減少性能消耗。本文給大家介紹vue2中的keep-alive使用總結(jié)及注意事項,需要的朋友參考下吧2017-12-12

