Vue(八)——表单数据双向绑定
表单双向绑定:
- 绑定的数据能更新表单的值
- 表单的值能更新所绑定的数据
- 通过
v-model指令来实现双向绑定 v-model——监听用户的输入事件来更新数据
规则:
- 初始化——
v-model会忽略所有表单元素的初始值而总是将 Vue 实例的数据data作为数据来源。 - 关联事件—
v-model在内部为不同的输入元素使用不同的 属性并抛出不同的事件
| 表单类型 | 属性 | 事件 |
|---|---|---|
| text 、 textarea | value | input |
| checkbox、radio | 默认checked,也可做value绑定 | change |
| select | value | change |
注意事项:
- 在文本区域插值 (
) 并不会生效,应用v-model来代替。 - 单个复选框
checkbox可以绑定布尔值,自定义字符串类型;多个复选框可以绑定到数组 - 单选按钮
radio可以绑定字符串 - 选择框
select单选时绑定到字符串,设置多选multiple时可绑定到数组
实例:
Message is:{{message}}saa
Message2 is:{{message2}}
Now Team:{{team}}
Now Tech:{{tech}}
Now toggle:{{toggle}}
Now Sex:{{sex}}
Now Answer:{{answer}}
Now multiple Answer: {{ selected }}
Fruit Now:{{todayfruit}}
javascript:
结果:

修饰符
.lazy
在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 (除了上述输入法组合文字时)。你可以添加 lazy 修饰符,从而转为在 change 事件_之后_进行同步:
.number
如果想自动将用户的输入值转为数值类型,可以给 v-model 添加 number 修饰符:
这通常很有用,因为即使在 type="number" 时,HTML 输入元素的值也总会返回字符串。如果这个值无法被 parseFloat() 解析,则会返回原始的值。
.trim
如果要自动过滤用户输入的首尾空白字符,可以给 v-model 添加 trim 修饰符: