vue表单选项的使用

单选

使用v-model指令给每个选项绑定同一个变量就可以确保只有一个被选中,同时value属性表示选中时的值。

	  <div id="app">
        <h1>单选:</h1>
        <label><input type="radio" v-model="gender" value="man"/></label>
        <label><input type="radio" v-model="gender" value="woman"/></label>
        <p>已选:{{gender}}</p>     
      </div>
      <script>
        var vm = new Vue({
            el:'#app',
            data:{
                gender:'man'//男女单选     
            }
        })
      </script>

复选框

1、单个复选

使用v-model指令绑定单选值,默认单选值为false,通过改变选框来改变值的状态

  <div id="app">
    	<h1>单个复选:</h1>
        <label>a<input type="checkbox" v-model="single"/></label>
        <p>已选:{{single}}</p>
  </div>
  <script>
     var vm = new Vue({
        el:'#app',
         data:{
            single:false//单个复选框
         }
      })
  </script>

2、多个值复选

使用v-model指令绑定一个变量,这些变量放在一个对象中,默认值都为false,通过改变选框来改变对象数据中值的状态

<div id="app">
    	<h1>多个值复选:</h1>
        <label>a<input type="checkbox" v-model="more.a"/></label>
        <label>b<input type="checkbox" v-model="more.b"/></label>
        <label>c<input type="checkbox" v-model="more.c"/></label>
        <p>已选:{{more}}</p>
  </div>
  <script>
     var vm = new Vue({
        el:'#app',
         data:{
            more:{a:false,b:false,c:false}//多个值复选
         }
      })
  </script>

3、多个复选

使用v-model指令v-model绑定一个相同的属性名称,这些变量放在一个数组中,值属性放在一个数组中

<div id="app">
    	<h1>多个复选:</h1>
        <label>a<input type="checkbox" v-model="multi" value="a"/></label>
        <label>b<input type="checkbox" v-model="multi" value="b"/></label>
        <label>c<input type="checkbox" v-model="multi" value="c"/></label>
        <p>已选:{{multi.join(',')}}</p>
  </div>
  <script>
     var vm = new Vue({
        el:'#app',
         data:{
            multi:[]//多个复选
         }
      })
  </script>

下拉选

使用v-for指令,避免重复书写option标签,默认一个选项值为空,同时用v-bind指令绑定value属性。当选中某一项时,该选项的value值赋给selected变量

<div id="app">
    	<h1>下拉选:</h1>
        <select v-model="selected">
            <option value="">请选择一个选项</option>
            <option v-for="item in items" :value="item.value">{{item.text}}</option>
        </select>
        <span>已选:{{selected}}</span>
  </div>
  <script>
     var vm = new Vue({
        el:'#app',
         data:{
            items:[{text:'A',value:'a'},{text:'B',value:'b'},{text:'C',value:'c'}],//下拉选数据
            selected:''//下拉选值
         }
      })
  </script>

综合全部代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/animate.css@3.5.1" rel="stylesheet" type="text/css">
    <title>Document</title>
</head>
<body>
    <div id="app">

        <h1>单选:</h1>
        <label><input type="radio" v-model="gender" value="man"/></label>
        <label><input type="radio" v-model="gender" value="woman"/></label>
        <p>已选:{{gender}}</p>

        <hr>
        <h1>单个复选:</h1>
        <label>a<input type="checkbox" v-model="single"/></label>
        <p>已选:{{single}}</p>

        <h1>多个值复选:</h1>
        <label>a<input type="checkbox" v-model="more.a"/></label>
        <label>b<input type="checkbox" v-model="more.b"/></label>
        <label>c<input type="checkbox" v-model="more.c"/></label>
        <p>已选:{{more}}</p>

        <h1>多个复选:</h1>
        <label>a<input type="checkbox" v-model="multi" value="a"/></label>
        <label>b<input type="checkbox" v-model="multi" value="b"/></label>
        <label>c<input type="checkbox" v-model="multi" value="c"/></label>
        <p>已选:{{multi.join(',')}}</p>

        <hr>
        <h1>下拉选:</h1>
        <select v-model="selected">
            <option value="">请选择一个选项</option>
            <option v-for="item in items" :value="item.value" multiple>{{item.text}}</option>
        </select>
        <span>已选:{{selected}}</span>

          
      </div>

      <script>

        var vm = new Vue({
            el:'#app',
            data:{
                gender:'man',//男女单选
                single:false,//单个复选框
                more:{a:false,b:false,c:false},//多个值复选
                multi:[],//多个复选
                items:[{text:'A',value:'a'},{text:'B',value:'b'},{text:'C',value:'c'}],//下拉选数据
                selected:''//下拉选值

            }
        })

      </script>
</body>
</html>

全部效果展示:
在这里插入图片描述

Logo

前往低代码交流专区

更多推荐