zoukankan      html  css  js  c++  java
  • Vue学习(四)--vue实现select下拉框默认值

    今天使用vue实现select下拉框时,发现用v-model绑定属性之后,原本默认显示第一条的select框变成了空白,在option标签中指定selected属性也没有效果,于是总结了绑定不同属性类型下实现下拉框默认值的情况。这些方法在element-ui中的select选择器也适用。

    1.单选下拉框设置默认值

    在data中定义属性并赋予默认值,在select标签中使用v-model指令绑定该属性。

    (1) 点击查看 vue 组件部分
    <template>
      <div>
        <select name="" id="id1" v-model="education">
          <option disabled value="selecteducation"> 请选择你的学历</option>
          <option value="highschool" > 高中</option>
          <option value="undergraduate"> 本科</option>
          <option value="master"> 硕士</option>
          <option value="doctor"> 博士</option>
        </select>
      </div>
    </template>
    
    (2) 点击查看 js 代码部分
    <script>
        export default {
            data(){
                return {
                    education:'',
                }
            },
            created(){
                this.education = 'undergraduate';
            }
        }
    </script>
    

    2.多选下拉框

    多选下拉框要指定select标签的multiple属性。与单选类似,区别是多选时使用v-model指令绑定数组属性,所有选中的选项值会保存到数组中。因此在data中初始化该属性为数组类型

    (1) 点击查看 vue 组件部分
    <template>
      <div>
        <select name="s2" id="id2" v-model="searches" multiple>
          <option :value="o.value" v-for="(o, i) in options" :key="i">{{o.name}}</option>
        </select>
        <h3>搜索引擎:{{searches}}</h3>
      </div>
    </template>
    
    (2) 点击查看 js 代码部分
    <script>
        export default {
            data(){
                return {
                    searches:['搜狐.com'],
                    options:[
                        {value:'百度.com', name:'百度'},
                        {value:'谷歌.com', name:'谷歌'},
                        {value:'搜狐.com', name:'搜狐'},
                        {value:'必应.com', name:'必应'},
                    ]
                }
            },
            created(){
                // this.searches = this.options[2].value
            }
        }
    </script>
    

    3. 获取计算属性的值

    同样需要先在data中初始化默认值,然后把计算属性的结果值赋给该属性。这里使用多选下拉框的代码举例。

    (1) 点击查看 vue 组件部分
    <template>
      <div>
        <select name="s2" id="id2" v-model="searches" multiple>
          <option :value="o.value" v-for="(o, i) in options" :key="i">{{o.name}}</option>
        </select>
        <h3>搜索引擎:{{searches}}</h3>
      </div>
    </template>
    
    (2) 点击查看 js 代码部分
    <script>
        export default {
            data(){
                return {
                    searches:[],
                    options:[
                        {value:'百度.com', name:'百度'},
                        {value:'谷歌.com', name:'谷歌'},
                        {value:'搜狐.com', name:'搜狐'},
                        {value:'必应.com', name:'必应'},
                    ]
                }
            },
            computed:{
                defaultSearches(){
                    let reslist = ['必应.com','搜狐.com'];
                    this.searches = reslist;
                    return reslist
                }
            },
            created(){
                this.defaultSearches(); // 实例创建后执行
            }
        }
    </script>
    

    4. 注意事项

    (1) Html代码中,通过v-model可以获取到选中的值,如果option中存在value属性,优先获取value值,如果不存在,则获取option的文本内容;
    (2) v-model指令绑定的数据属性,必须先在data中对该属性进行初始化;
    (3) 使用v-model绑定属性后,在option标签中使用selected属性无法实现默认值,此时select框显示空白。需要在在初始化属性时对该属性赋予确定的值

  • 相关阅读:
    labview 中的一些简写全称
    socket
    putty
    在波形图表中显示多条曲线
    简单的通电延时触发电路
    Linux sed 批量替换多个文件中的字符串
    PhpMyAdmin管理,登录多台远程MySQL服务器
    MySQL客户端工具推荐
    Redis的几个认识误区
    Redis 的 5 个常见使用场景
  • 原文地址:https://www.cnblogs.com/rongzhen/p/15527051.html
Copyright © 2011-2022 走看看