在vue中我们可以通过v-model来为表单元素实现双向绑定

1:v-model指令

数据的双向绑定

双向绑定是说我们不仅仅可以通过数据(M)的改变去影响视图(V),还是当视图的内容改变(V)去影响模型中的数据(M)

通常来说双绑定应用在表单中比较多

指令: vue对html元素拓展是一些属性名称(自定义属性名称)

Vue指令有个特点,都是以v-开头的

V-model,它提供了一个js环境,在他的属性之中我们可以使用js(vue实例化对象)中的变量,将表单元素的值与vue实例化对象中是数据属性同步,实现视图到模型中的数据的一个绑定,因此在表单元素上添加了v-model就实现一种双向绑定

<div id="app">

  <input type="text" v-model="msg">

  <h1>{{msg }}</h1>

</div>

var myData = {

  // 插入的文本

  msg: ''

};

// 创建vue对象

var app = new Vue({

  el: '#app',

  data: myData

})

//实现了input输入内容和h1的双向绑定

2:单选或者多选

它不允许我们输入,只允许我们点击是否被选中

元素属性(checked)的优先级要高于vue实例化对象中数据属性值(适用于所有表单元素)

(1)多选

将checkbox的值写入一个变量中,变量中的每一个属性对应一个checkbox的值

当值是false,多选框不会被选中

注意:在判断值会做类型转换(0 ‘’, null, undefined, NaN, false)都是false

当值是true,多选框会被选中

Eg:

<label>S<input type="checkbox" v-model="size.S"></label>

<label>M <input type="checkbox" v-model="size.M" ></label>

<label>L <input type="checkbox" v-model="size.L"></label>

<label><input type="checkbox" v-model="size.XL" v-bind:true-value="big" v-bind:false-value="'small'"></label>   //'small'是字符串   big变量

<p>{{size | json}}</p>        //json对象数据转化成一个json字符串

var app = new Vue({

el: 'div',

data: {

size: {

S: false,

M: false,

L: '',

XL: ''   //// 我们希望XL不是一个boolean值

}

},

computed: {

big: function () {

return 'is big'

}

}

})

当选框框值不想设置为boolean的时候,我们可以通过绑定true-value和false-value来定义

V-bind:true-value 选中时候的值

V-bind:false-value 没有选中时候的值

如果值是变量会去vue实例化对象中寻找数据(包含动态数据(优先)对象或者静态数据对象)

(2)单选

定义单选时候,我们要添加统一的同一个变量名称,这个变量会保存单选的选中元素。

单选要设置value值,这里的值会保留v-model的变量属性中

<label>男<input type="radio" v-model="sex" value="man" ></label>

<label>女<input type="radio" v-model="sex" value="woman"></label>

<p>{{sex}}</p>

var app = new Vue({

el: 'div',

data: {

sex: ''   //未选中任何。为空

//man  默认选中man

}

})

(3)下拉框

在vue中定义下拉框,在select上多了一个v-model属性

如果想实现多选,select添加multiple属性

可以为option添加value属性,此时选中该选项的时候,获取的值就是value,如果不设置value默认使用的是option中的内容值

设置默认选中时,我们可以通过在vue实例化对象中绑定数据中定义,

如果是单选直接写上单选的值    email: ‘126’

如果是多选,我们可以将这些值写在一个数组中  email: [126,'sina']

vue中下拉框中每个选项是重复的,可以通过v-for来动态的渲染元素

Eg:

<p>{{email}}</p>

<select v-model="email" >

<option value="126">@126.com</option>

<option value="163">@163.com</option>

</select>

var app = new Vue({

el: 'div',

data: {

// 表示下拉框中选中的元素的值

email: ‘’

}

})

Eg;

<select v-model="email">

<option v-for="item in emails" value="item">

<template v-if="item == 'yeah'">@{{item}}.net</template>

<template v-if="item != 'yeah'">@{{item}}.com</template>

</option>

</select>

emails: [126, 163, 'sina', 'sohu', 'yeah', 139]

Eg:

<select v-model="email">

<option v-for="item in emails" selected="{{item.checked}}">

<template v-if="item == 'yeah'">@{{item.value}}.net</template>

<template v-if="item != 'yeah'">@{{item.value}}.com</template>

</option>

</select>

emails: [

{

value: 163,

checked: false

},

{

// 默认'sina'是被选中

value: 'sina',

checked: true

},

{

value: 'sohu',

checked: false

}

]

3:表单元素的特性

debounce 当输入完毕等待参数值时候,再进行数据的绑定。单位是毫秒

Lazy 做了失去焦点操作,当表单元素失去焦点时候,才会做数据的绑定

1<input type="text" debounce="1000" v-model="msg">

2<input type="text" lazy v-model="msg">

vue的表单的简单介绍 input radio checkbox等表单特性的更多相关文章

  1. Vue中的双向数据绑定简单介绍

    1. 文本框绑定v-module <div id="app"> <input type="text" v-model="msg&qu ...

  2. 表单复选框input[type="checkbox"]

    <!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...

  3. jquery 获取input radio/checkbox 的值 【注意写法】

    今天,在用jquery获取页面上radio值的时候,radio给出了默认值,但是无论如何修改值,radio始终是默认值,去掉默认值的时候,页面上又报出了undefined的错误.经过几番搜索,发现不同 ...

  4. Jquery操作radio,checkbox,select表单操作实现代码

    一 .Select jQuery获取Select选择的Text和Value: 1. $("#select_id").change(function(){//code...}); / ...

  5. css 更改input radio checkbox的样式

    html <label> <input type="checkbox" class="colored-blue"> <span c ...

  6. vue之node.js的简单介绍

    一.什么是node.js? 它是可以运行JavaScript的服务平台,可以吧它当做一门后端程序,只是它的开发语言是JavaScript 二.安装 1.node.js的特性: - 非阻塞IO模型 - ...

  7. vue学习【第三篇】:vue之node.js的简单介绍

    什么是node.js 它是可以运行JavaScript的服务平台,可以吧它当做一门后端程序,只是它的开发语言是JavaScript 安装node.js node.js的特性 - 非阻塞IO模型 - 时 ...

  8. vue之 node.js 的简单介绍

    一.什么是 node.js? 它是可以运行在JavaScript的服务平台 二.安装 1.node.js的特性 - 非阻塞IO模型 - 时间驱动 2.运用场景 - 高并发低业务 - 实时场景 - 聊天 ...

  9. 设置input(radio,checkbox)和lable对齐的问题

    在做页面的时候几次遇到label和前面的小图标无法对齐的情况,后来发现解决方法不过是 label { display:inline-block; vertical-align:top; line-he ...

随机推荐

  1. 轻松精通awk数组企业问题案例

    考试题1:处理以下文件内容,将域名取出并根据域名进行计数排序处理:(百度和sohu面试题) oldboy.log http://www.etiantian.org/index.html http:// ...

  2. 16个简单实用的.htaccess技巧

    .htaccess 文件 (Hypertext Access file) 是Apache Web服务器的一个非常强大的配置文件,对于这个文件,Apache有一堆参数可以让你配置出几乎随心所欲的功能.. ...

  3. aFlex脚本入门

    aFlex脚本入门 来源:http://blog.51cto.com/virtualadc/599194 来源:http://blog.51cto.com/virtualadc/624219 对于A1 ...

  4. [CF954G]Castle Defense

    题目大意:有$n$个点,每个点最开始有$a_i$个弓箭手,在第$i$个位置的弓箭手可以给$[i-r,i+r]$区间加上$1$的防御,你还有$k$个弓箭手,要求你最大化最小防御值 题解:二分答案,从右向 ...

  5. 项链 [FFT]

    题面 思路 这题很像bzoj4827礼物 还是一样的思路,我们把$y$倍长,$y[i+k]=y[i]+n$ 然后令$f(s,c)$表示从$y$的第$s$个开始匹配,位置偏移量为$c$的答案 可以得到$ ...

  6. BZOJ1027 [JSOI2007]合金 【计算几何 + floyd】

    题目 某公司加工一种由铁.铝.锡组成的合金.他们的工作很简单.首先进口一些铁铝锡合金原材料,不同种类的 原材料中铁铝锡的比重不同.然后,将每种原材料取出一定量,经过融解.混合,得到新的合金.新的合金的 ...

  7. Linux Ubuntu mysql 乱码

    进入mysql后,敲入命令status,就可以看到mysql的字符编码问题. 默认如下: Server characterset:    latin1 Db  characterset:    lat ...

  8. C语言字节对齐问题详解【转】

    引言 转自:http://www.cnblogs.com/clover-toeic/p/3853132.html 考虑下面的结构体定义: 1 typedef struct{ 2 char c1; 3 ...

  9. 终于遇到了传说的ie 6 img 3px的bug

    最近在做一个网站,基本上已经算完成,就开始完善细节部分了. IE6可能是微软最为YD 的一款浏览器了吧,至今还没有退出历史的舞台,尽管google都宣布不在支持它了. 因为该死的ie6,虽死但是牢牢地 ...

  10. 【转载】使用 PIVOT 和 UNPIVOT

    可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表.PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执 ...