首頁 > web前端 > js教程 > 主體

關於Vue.js表單標籤中的單選按鈕、複選按鈕和下拉清單的取值詳解

小云云
發布: 2017-12-12 11:31:37
原創
4246 人瀏覽過

Vue.js可以很方便的實作資料雙向綁定,所以在處理表單,人機互動方面有著很大的優勢。以下為大家介紹Vue.js表單標籤中的單選按鈕、複選按鈕和下拉清單的取值問題。

摘要: 表單標籤取值問題中,單選按鈕、複選按鈕和下拉清單都比較特殊。這裡總結一下vue.js中關於單選按鈕、複選按鈕和下拉清單不同情況的取值特殊性問題。

一、單選按鈕

    單選按鈕:單選按鈕以v-model 結合填值屬性用來表示checked,用於判斷是否選取。

    當單選按鈕沒寫value值時,在 vue.js 中將值賦為null。

    在一般標籤中,當沒寫name時,html 會預設沒寫name 的單選按鈕分成一組;

    在vue中,即使沒寫name,只要單選取按鈕v-model綁定了同一個變數(如:gender),這些按鈕也會被分成一組。但習慣上,我們還是也寫上name。

    在data中定義的變數gender的值將影響到單選按鈕的預設選項,如: 本範例中gender:"女",預設選擇女。

    js部分程式碼:


window.onload = function (){
 new Vue({
 el:"#app",
 data:{
  gender:"女"
 }
 });
}
登入後複製


    html部分程式碼:


#
<body>
 <p id="app">
 <!-- 
  单选按钮:单选按钮用 v-model 绑定填值属性用来表示checked,用于判断是否选中。
  当单选按钮没写value值时,在vue中将值赋为null
  在普通标签中,当没写name时,html 会默认将没写name 的单选按钮分为一组;
  在vue中,即使没写name,只要单选按钮v-model绑定了同一个变量(如:gender),这些按钮也会被分为一组。
登入後複製


但是習慣上,我們還是也寫上name      

        data中定義的變數gender的值將影響單一選取按鈕的預設值將影響到單選按鈕的預設值選項,如: 本範例中gender:"女",預設選擇女。


 -->
 <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>
 </p>
</body>
登入後複製


#二、複選按鈕

    複選按鈕:單選按鈕以v-model 綁定填值屬性用來表示checked,用於判斷是否選取。

    當多重選取按鈕沒有寫入value值時,在 vue.js 中將值賦為null。

    vue.js對於複選按鈕如何取值取決於 v-model 所綁定的變數的型別。

1、基本型別

    初始化時,v-model 綁定的是任意的基本型別(Number、String、Boolean、Null、Undefined),取值時會預設轉為Boolean類型,true時表示選中,false表示未選中。

js段程式碼:


window.onload = function (){
 new Vue({
 el:"#app",
 data:{
  hobbies01:"",
  hobbies02:"...",
  hobbies03:false
 }
 });
}
登入後複製


#html段落程式碼:


<body>
 <p 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/>
 </p>
</body>
登入後複製


效果截圖:

#    初始化時,hobbies01值為空字串轉換為Boolean類型時false,所以未選取;hobbies02值為字串“....”,轉換為Boolean類型是true,所以預設選取;hobbies03預設值是false,所以初始化時未選取。

    此後,每次點選多重選擇按鈕,hobbies01、hobbies02、hobbies03的數值都是 true | false 變更。

2、陣列

    初始化時,v-model 綁定的變數是陣列型別時。 vue 認為這個複選按鈕是用來取得值,會以選擇(滑鼠點擊)的順序將對應的值寫入到陣列中。

js程式碼片段:


window.onload = function (){
 new Vue({
 el:"#app",
 data:{
  hobbies:[]
 }
 });
}
登入後複製


#html程式碼片段:


<body>
 <p id="app">
 <!-- v-model 绑定时数组 -->
 <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>
 </p>
</body>
登入後複製


效果截圖:

#    初始化時hobbies 是空數組。注意滑鼠點擊順序和 hobbies 值的對應變化。

三、下拉清單

    下拉清單:下拉清單中v-model 寫在下拉清單的標籤中

    依指定值選擇對應

    option 沒有value屬性 以 option 正反標籤中的值 作為value。

3.1 下拉清單

js程式碼片段:


window.onload = function (){
 new Vue({
 el:"#app",
 data:{
  s:""
 }
 });
}
登入後複製


html程式碼片段:


<body>
 <p id="app">
 <select v-model="s">
  <option value="s1">小学</option>
  <option value="s2">中学</option>
  <option value="s3">大学</option>
  <option itany="itany" value="">请选择</option>
 </select>
 </p>
</body>
登入後複製


#結果分析:

    因為變數s 的初始值是空字串,所以預設選擇「請選擇選項」(可根據s的初識值改變預設選項)。當選擇其他option時,s 的值會隨之改變(字串:"s1"/"s2"/"s3")。

3.2 未寫value值

    當未寫 value 時, s 的值會變成 「小學」/「中學」/「大學」。

3.3 多重選取下拉清單

    multiple關鍵字,按住 ctrl 鍵進行多重選取。注意此時 model 綁定的變數應該是數組。

相關推薦:

Vue.js表單控制項實作

Vue.js中的元件與範本探討

Vue.js常用指令的學習詳解

以上是關於Vue.js表單標籤中的單選按鈕、複選按鈕和下拉清單的取值詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板