Vue.js常用指令:v-model

一、v-model指令

v-model 用来获取表单元素的值。对应input输入框获取的是输入的值,单选按钮、复选框、下拉框获取的是选择的状态。

代码示例如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>v-model指令</title>
    <!--引入vue.js-->
    <script src="node_modules/vue/dist/vue.js" ></script>
    <script>
       window.onload=function(){
           // 构建vue实例
           new Vue({
               el:"#my",
               data:{
                 inputValue:"hello world",
                 chkState:true, //默认为true
                 chkArray:["1"], //处理成组的复选框需要定义一个数组,对应每个CheckBox的value值,这里默认第二个选中
                 chkLists:[{displayName:"科普读物",value:"0"},
                           {displayName:"中小学教材",value:"1"},
                           {displayName:"计算机科学",value:"2"}],
                 rdoCheck:"1",
                 // 动态处理radio
                 radioLists:[{name:"Gender",value:"1",displayName:"男"},
                             {name:"Gender",value:"2",displayName:"女"}],
                 sectionValue:"香蕉", // 没有value值,默认值就是name的值
                 sectionValue1:"0",
                 optionLists:[{value:"0",displayName:"苹果"},
                             {value:"1",displayName:"香蕉"},
                             {value:"2",displayName:"葡萄"}]
               },
               // 方法
               methods:{

               },
               filters:{
                   toShowCheckBoxState:function(value){
                       return value==true?"选中":"未选中"
                   }
               }
           })
       }
    </script>
</head>
<body>
    <div id="my">
       <!--表单输入框 当inputValue的值为123的时候禁止输入-->
       <input type="text" v-model="inputValue" :disabled="inputValue==123">{{inputValue}}
       <!--复选框  v-model 当前的状态:true或者false-->
       <div>
           <input type="checkbox" v-model="chkState">当前选中状态:{{chkState | toShowCheckBoxState}}
       </div>
        <!--多个复选框 组  静态显示-->
        <div>
            <input type="checkbox" v-model="chkArray" value="0">唱歌
            <input type="checkbox" v-model="chkArray" value="1">跳舞
            <input type="checkbox" v-model="chkArray" value="2">打篮球
            <p>当前选中的value值:{{chkArray}}</p>
        </div>
        <!--复选框 动态显示-->
        <div>
            <ul>
                <li v-for="list in chkLists">
                    <input type="checkbox" v-model="chkArray" :value="list.value">{{list.displayName}}
                </li>
            </ul>
        </div>
        <!--单选框 静态显示 -->
        <div>
            <input type="radio" v-model="rdoCheck" name="Gender" value="1">男
            <input type="radio" v-model="rdoCheck" name="Gender" value="2">女
            <p>{{rdoCheck}}</p>
        </div>
         <!--单选框 动态显示-->
         <div>
             <ul>
                 <li v-for="list in radioLists">
                    <input type="radio" v-model="rdoCheck" :name="list.name" :value="list.value">{{list.displayName}}
                 </li>
             </ul>
            <p>{{rdoCheck}}</p>
        </div>
        <!--下拉框 静态显示 -->
        <div>
            <select v-model="sectionValue">
                <option>苹果</option>
                <option>香蕉</option>
                <option>葡萄</option>
            </select>
            <p>{{sectionValue}}</p>
        </div>

        <!--下拉框 静态显示 -->
        <div>
            <select v-model="sectionValue1">
                <option value="0">苹果</option>
                <option value="1">香蕉</option>
                <option value="2">葡萄</option>
            </select>
            <p>{{sectionValue1}}</p>
        </div>

        <!--下拉框 静态显示 -->
        <div>
            <select v-model="sectionValue1">
                <option v-for="list in optionLists" :value="list.value">{{list.displayName}}</option>
            </select>
            <p>{{sectionValue1}}</p>
        </div>
    </div>
</body>
</html>

二、v-model指令实例

下面代码利用v-model指令实现全选的功能:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>v-model指令</title>
    <!--引入vue.js-->
    <script src="node_modules/vue/dist/vue.js" ></script>
    <script>
        window.onload = function(){
    var vm =new Vue({
        el:‘#my‘,
        data:{
            checkAll: {name:‘全选‘,check:false},
            lists:[{name:‘小米‘,check:true},
                    {name:‘华为‘,check:false},
                    {name:‘苹果‘,check:false},
                    {name:‘中兴‘,check:false},
                    {name:‘OPPO‘,check:false}]
        },
        methods: {
            checkAllChange:function(){
                vm.lists.forEach(function(item){
                    item.check = vm.checkAll.check;
                });
            },
            curChange:function(){
                //true的状态
                var curTure = this.lists.filter(function(item){
                    return item.check ==true;
                });
                curTure.length == this.lists.length ? this.checkAll.check = true : this.checkAll.check = false ;
            }
        }
    })
}
    </script>
</head>
<body>
    <div id=‘my‘>
        <input type="checkbox" v-model="checkAll.check" @change="checkAllChange()">
        <label>{{checkAll.name}} {{checkAll.check}}</label>
        <ul>
            <li v-for="list in lists">
                <input type="checkbox" v-model="list.check"  @change="curChange()">
                <label>{{list.name}} {{list.check}}</label>
            </li>

        </ul>
    </div>
</body>
</html>

原文地址:https://www.cnblogs.com/dotnet261010/p/10203290.html

时间: 2024-08-12 13:11:42

Vue.js常用指令:v-model的相关文章

【Vue】vue.js常用指令

http://www.cnblogs.com/rik28/p/6024425.html Vue.js的指令是以v-开头的,它们作用于HTML元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会为绑定的目标元素添加一些特殊的行为,我们可以将指令看作特殊的HTML特性(attribute). Vue.js提供了一些常用的内置指令,接下来我们将介绍以下几个内置指令: v-if指令 v-show指令 v-else指令 v-for指令 v-bind指令 v-on指令

Vue.js常用指令:v-for

一.什么是v-for指令 在Vue.js中,我们可以使用v-for指令基于源数据重复渲染元素.也就是说可以使用v-for指令实现遍历功能,包括遍历数组.对象.数组对象等. 二.遍历数组 代码示例如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content=&quo

Vue.js常用指令:v-show和v-if

一.v-show指令 v-show指令可以用来动态的控制DOM元素的显示或隐藏.v-show后面跟的是判断条件,语法如下: v-show="判断变量" 例如: v-show="true",表示显示DOM元素. v-show="false", 表示隐藏DOM元素. 看下面的示例: <!DOCTYPE html> <html lang="en"> <head> <meta charset=

Vue.js常用指令:v-on

一.v-on指令 v-on指令在Vue.js中用来处理对应的事件.用法: v-on:事件类型="函数体" 例如:点击按钮的时候执行play事件 <button v-on:click="play">点击事件</button> 注意: 在使用v-on指令绑定事件的时候,如果要执行的是无参的函数,函数体可以加括号也可以不加括号,下面的两种写法是等价的: <button v-on:click="play()">点击事件

Vue专题-js常用指令

vue.js官方给自己的定为是数据模板引擎,并给出了一套渲染数据的指令.本文详细介绍了vue.js的常用指令. vue.js常用指令 Vue.js使用方式及文本插值 Vue.js 使用了基于 HTML 的模板语法,最简单的使用vue的方式是渲染数据,渲染数据最常见的形式就是使用"Mustache"语法 (双大括号) 的文本插值. 123456789101112131415161718192021222324252627282930 <!DOCTYPE html><ht

Vue.js自定义指令的用法与实例

市面上大多数关于Vue.js自定义指令的文章都在讲语法,很少讲实际的应用场景和用例,以致于即便明白了怎么写,也不知道怎么用.本文不讲语法,就讲自定义指令的用法. 自定义指令是用来操作DOM的.尽管Vue推崇数据驱动视图的理念,但并非所有情况都适合数据驱动.自定义指令就是一种有效的补充和扩展,不仅可用于定义任何的DOM操作,并且是可复用的. 比如谷歌图片的加载做得非常优雅,在图片未完成加载前,用随机的背景色占位,图片加载完成后才直接渲染出来.用自定义指令可以非常方便的实现这个功能. 效果: 自定义

vue.js自定义指令入门

Vue.js 允许你注册自定义指令,实质上是让你教 Vue 一些新技巧:怎样将数据的变化映射到 DOM 的行为.你可以使用Vue.directive(id, definition)的方法传入指令id和定义对象来注册一个全局自定义指令.定义对象需要提供一些钩子函数(全部可选): bind: 仅调用一次,当指令第一次绑定元素的时候. update: 第一次是紧跟在 bind 之后调用,获得的参数是绑定的初始值:以后每当绑定的值发生变化就会被调用,获得新值与旧值两个参数. unbind:仅调用一次,当

Vue.js 基础指令实例讲解(各种数据绑定、表单渲染大总结)——新手入门、高手进阶

Vue.js 是一套构建用户界面的渐进式框架.他自身不是一个全能框架--只聚焦于视图层.因此它非常容易学习,非常容易与其它库或已有项目整合.在与相关工具和支持库一起使用时,Vue.js 也能完美地驱动复杂的单页应用.他是基于AnjularJs 编写的,所以和前者的语法特别相似,却又使用简洁了很多. 那今天,我就给大家详细的说道说道这个 Vue.js ,以下是我们这次详解的目录,朋友们可以根据自己的情况选择性阅读,所有操作均附有代码实现. 1. Vue.js 如何绑定到页面中,使用他的功能. 2.

vue.js 常用语法总结(一)

作者:曾萍,目前就职于京东商城. 概述 2016年已经结束了.你是否会思考一下,自己在过去的一年里是否错过一些重要的东西?不用担心,我们正在回顾那些流行的趋势.通过比较过去12个月里Github所增加的star数,我们利用bestof.js.org分析所涉及的项目技术,发现2016最流行项目有以下这些:图片通过比较去年最火的10个项目,你可以总览2016的web前端技术发展,会发现:Vue.js在去年获得了超过25000个star,这意味着每天有72个star,超过了包含React以及Angul