十七、v-model表单输入绑定

v-model指令在表单<input><textarea><select>元素上创建双向数据绑定

它会根据控件类型自动选取正确的方法更新元素尽管有些神奇,但v-model本质上不过是语法糖。

它负责监听用户的输入事件更新数据并对一些极端场景进行一些特殊处理。

注意:对于需要使用输入法(如中文、日文、韩文等)的语言,你会发现v-model不会在输入法组合文字过程中得到更新。如果你也想处理这个过程,请使用input事件

(1)文本类型中使用 

<input type='text' v-model='msg'>{{msg}}

(2)多行文本中使用 

<textarea v-model='msg'></textarea>{{msg}}

(3)单个复选框类型中使用 

<input type="checkbox" v-model='checked'>
<label for="checkbox">{{checked}}</label>
<!--v-model绑定的值:当复选框被选中时,值为true。当复选框没选中时,值为false。-->

(4)多个复选框类型中使用 

<input type="checkbox" id='jack' value='jack' v-model="checkedArr"><label for="jack">Jack</label>
<input type="checkbox" id='john' value='John' v-model="checkedArr"><label for="john">John</label>
<input type="checkbox" id='mike' value='Mike' v-model="checkedArr"><label for="mike">Mike</label>
<br><span>选择的是:{{checkedArr}}</span>

<!--v-model绑定的值,就是input标签的属性value的值-->

(5)单选按钮类型中使用  

<label><input type="radio" value="1" v-model='gender'></label>
<label><<input type="radio" value="2" v-model='gender'></label>
<br><span>性别:{{gender=='1'?'男':(gender=='2'?'女':'')}}</span>
<!--v-model绑定的值,就是input标签的属性value的值-->

(6)选择框单选时中使用 

<select v-model='selected'>
    <option disabled value="">请选择</option>
    <option  value='羊肉串'>羊肉串</option>
    <option  value='猪肉串'>猪肉串</option>
    <option  value='牛肉串'>牛肉串</option>
</select>
<br><span>选择的是:{{selected}}</span>
<!--v-model绑定的值,就是option标签的属性value的值-->

注意:如果v-model表达式的初始值未能匹配任何选项,<select>元素将被渲染为“未选中”状态。

           在IOS中,这会使用户无法选择第一个选项。因为这样情况下,IOS不会出发change事件。

           因此,推荐像上面这样提供一个值为空的禁用选项

(7)选择框多选时中使用 

<select v-model='selectedArr' multiple>
     <option value="羊肉串">羊肉串</option>
     <option value="猪肉串">猪肉串</option>
     <option value="牛肉串">牛肉串</option>
<select>
<span>选择的是{{selectedArr>0?selectedArr.join(","):""}}</span>
<!--v-model绑定的值,就是option标签的属性value的值-->

 

posted @ 2021-09-07 01:03  Strugglinggirl  阅读(87)  评论(0编辑  收藏  举报