Vue.js表单控件绑定v-model-创新互联

v-model 主要用于input、textarea、select等表单控件元素上创建双向数据绑定,所谓双向绑定就是js中vue实例化的data对象的数据与其渲染的dom元素上的内容保持一致

创新互联建站服务项目包括新密网站建设、新密网站制作、新密网页制作以及新密网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,新密网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到新密省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

1、text 文本


    

`message`

    
new Vue({
    el:'#app',
    data:{
        message:'Hello World !'
    }
})

查看页面效果,随着文本输入框种的内容发生改变,与Vue实例中data绑定的h2的内容也相应发生改变

Vue.js  表单控件绑定  v-model

2、textarea  多行文本



    

Multiline message is: `msg`

    

3、checkbox  复选框

(1)、单个勾选框,逻辑值



    
    `checked`

(2)、多个勾选框,绑定到同一个数组



    
    Jack
    
    Jhon
    
    Mike
    

Checked Names: `checkNames`

4、radio 单选按钮



    
    Male
    
    Female
    

Gender: `gender`

5、select 选择列表

(1)、单选列表



    
        
        
        
    
    

Selected: `selected`

(2)、多选列表,绑定到一个数组



    
        
        
        
    
    

Selected: `selected`

动态选项,用v-for渲染



    
        `option`.`text`
    
    

Selected: `selected`

绑定Value

对于单选按钮,勾选框及选择列表选项,v-model绑定的数据通常是静态字符串(对于勾选框是逻辑值)









    ABC

但是有时我们想绑定 value 到 Vue 实例的一个动态属性上,这时可以用 v-bind 实现,并且这个属性的值可以不是字符串。



    


// 当选中时
vm.toggle === vm.a
// 当没有选中时
vm.toggle === vm.b

单选按钮



// 当选中时vm.pick === vm.a

选择列表设置


    
    123


// 当选中时
typeof vm.selected   // -> 'object'
vm.selected.number   // -> 123

同时,我们也可以通过 过滤器的方式去监控页面内容变化


    

`message`

         
        {{$data|json}}
    

Vue.js  表单控件绑定  v-model

修饰符

除了以上用法,v-model指令后面还可以添加多个参数(number、lazy、debounce)

1、number

如果想将用户的输入自动转换为Number类型(如果原始值得转换结果为NaN,则返回原值),则可以添加一个number特性。


    
    `msg`

Vue.js  表单控件绑定  v-model

Vue.js  表单控件绑定  v-model

2、lazy

在默认情况下,v-model在input事件中同步输入框的值与数据,我们可以添加一个lazy特性,从而将数据改到在change事件中发生。


    
    `msg`

我们在input输入框中输入内容,虽然触发了input事件,但是因为加入了lazy属性,msg的值一直没有发生变化。

Vue.js  表单控件绑定  v-model

一直到input输入框发生change事件之后

Vue.js  表单控件绑定  v-model

3、debounce

设置一个最小的延时,在每次敲击之后延时同步输入框的值与数据。如果每次更新都要进行高耗操作(例如:在input中输入内容时要随时发送AJAX请求),那么它较为有用


 
 `msg`