表单 + v-model

A、 作用

表单类元素上双向绑定事件

B、基本用法

1、input + textarea

所显示的值只依赖于所绑定的数据,不再关心初始化时的插入的value

<!--我是多行文本的初始化值 不会显示了,显示内容是 msg 的内容 -->
<textarea name="" id="" cols="30" rows="2" v-model="msg">我是多行文本的初始化值</textarea> 
{{ msg }}

2、单选按钮

2.1、 单个单选框

只能用v-bind,而v-model 不管用

<input type="radio" v-bind:checked = "oneradio">

2.2、 多个单选框

如果是多个单选框,一定要v-­model来绑定,绑定选中的单选框的value值,此处所绑定的初始值可以随意给

//html    给name值表示多个单选项,只能选择一个 
单选1<input type="radio" name="checks" value="单选1" v-model="checkname"><br>
单选2<input type="radio" name="checks" value="单选2" v-model="checkname"><br>
单选3<input type="radio" name="checks" value="单选3" v-model="checkname"><br>
<br>
现在选中的是 {{ checkname }}

//js
...
data:{
        value: '',
        msg: '',
        oneradio: false,
        checkname: '单选1' // 此处所绑定的初始值可以随意给
}    

3、复选框

3.1、单个复选框

直接用定一个布尔值,可以用v­-modev­-bind

单个复选框(v-bind表示):<input type="checkbox" v-bind:checked="oneradio"> <br>
单个复选框(v-model表示):<input type="checkbox" v-model="oneradio">

3.2、多个复选框

需要v­-model来配合value使用 + v­-model绑定一个数组

注:如果绑定的是字符串,则会转化为true或false,与所有绑定的复选框的checked属性相对应

//html
多个复选框 <br>
选项1<input type="checkbox" value="选项1" v-model="checks">
选项2<input type="checkbox" value="选项2" v-model="checks">
选项3<input type="checkbox" value="选项3" v-model="checks">
<br>
现在选中的是 {{ checks }}

//js
...
data:{
        value: '',
        msg: '',
        oneradio: true,
        checkname: '单选1',
        checks: '' // 绑定的是字符串,则会转化为true或false
        checks: [] // 绑定的是数组,含有选中的复选框的value值的一个数组
}    

4、 下拉框

4.1、 如果是单选,所绑定的value值初始化可以为 数组字符串,结果是转化为所选定项的value值

注: 有value直接优先匹配一个value值,没有value就匹配一个text值

4.2、 如果是多选,需要v­-model来配合value使用,v­-model绑定一个数组,与复选框类似

4.3、 v­-model一定绑定在select标签上

//html
<select v-model="selected">
        <option value="选项1">选项1</option>
        <option value="选项2">选项2</option>
        <option value="选项3">选项3</option>
</select>
<br>
现在选中的是 {{ selected }}

//js
...
data:{
        value: '',
        msg: '',
        oneradio: true,
        checkname: '单选1',
        checks: [],
        selected:'',// value 值为字符串可以
        selected:[] // value 值为数组也可以
 }    

小总结:

1、如果是单选,初始化最好给定字符串,因为v­-model此时绑定的是静态字符串或者布尔值

2、如果是多选,初始化最好给定一个数组

C、绑定值

1、 单选按钮

v­-bind给单个单选框绑定一个value值,此时,v­-model绑定的就是他的value值

//v-model对单个单选框不生效,但是给单选按钮动态绑定一个value值,就能通过v-model获取它的value值
<input type="radio" v-model="picked" v-bind:value="value">{{picked}}

2、复选框

通过true-value、false-value 去绑定value值,v­-model绑定的就是他的value值

//html  
<input type="checkbox" v-model="toggle" :true-value="value1" :false-value="value2">
{{toggle}} <br>
选中:{{ toggle == value1}} <br>
没选中: {{ toggle == value2}}
//js
...
data:{
    toggle: true,
    value1: '选中啦',
    value2: '没有选中啦'   
} // 选中和没选中时的value值不一样

3、下拉框
在select标签上,v-model绑定的是option上的value值,绑定value值对option并没有影响

//html
<select v-model="valueSele" :value="{num:123}"> 
  <option value="list1">list1</option>
  <option value="list2">list2</option>
  <option value="list3">list3</option>
</select>
{{typeof valueSele}}----{{ valueSele }}

// 若把 :value="{num:123}"动态绑定到option上
<select v-model="valueSele"> 
  <option value="list1" :value="{num:123}">list1</option>
</select>

//js
...
data:{
    valueSele:''   
}

D、修饰符

1、lazy

v­-model默认是在input输入时实时同步输入框的数据,而lazy修饰符,可以使其在失去焦点或者敲回车键之后在更新

<input type="text" v-model.lazy="msg">{{msg}} // 敲回车或在失去焦点后渲染

2、number

将输入 的字符串转化为number类型

<input type="text" v-model.number="value">{{typeof value}}

3、trim

自动过滤输入过程中首尾输入的空格

<input type="text" v-model.trim='value'>{{value.split('').length}}

【Demo 实例 https://jsbin.com/fabuqey/edit?html,output

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342