v-model 指令在表单 <input> 及 <textarea> 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。

对于单选按钮,复选框及选择框的选项,v-model 绑定的值通常是静态字符串 (对于复选框也可以是布尔值)。对于复选框有如下方式

1、单个复选框,绑定到布尔值

        <input type="checkbox" id="checkbox" v-model="checked">

        <label for="checkbox">{{ checked }}</label>

    

  

    注意:选项data中,要声明checked变量,默认值为false,checked:false,页面操作,勾选上,那么v-model会自动绑定更新checked变量,更新为true

2、多个复选框,可绑定到同一个数组(这里是要显示选择的复选框的值)

                  <input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
 <label for="jack">Jack</label>
 <input type="checkbox" id="john" value="John" v-model="checkedNames">
 <label for="john">John</label>
 <input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
 <label for="mike">Mike</label>
 <br>

 <span>Checked names: {{ checkedNames }}</span>

    

     注意:data选项中,checkbox的vulue属性值必须要有,否则勾选一个,其他的也会勾选上,显示异常


lazy 修饰符

在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 (除了上述输入法组合文字时)。你可以添加 lazy 修饰符,从而转变为使用 change 事件进行同步:

<!-- 在“change”时而非“input”时更新 -->
<input v-model.lazy="msg" >
number 修饰符

如果想自动将用户的输入值转为数值类型,可以给 v-model 添加 number 修饰符:

<input v-model.number="age" type="number">

这通常很有用,因为即使在 type="number" 时,HTML 输入元素的值也总会返回字符串

trim 修饰符

如果要自动过滤用户输入的首尾空白字符,可以给 v-model 添加 trim 修饰符:

<input v-model.trim="msg">


Logo

前往低代码交流专区

更多推荐