表单输入绑定

基础用法


v-model指令可以在表单

在文本区域插值()并不会生效,应用v-model来代替。

复选框

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



多个复选框,绑定到同一个数组:








Checked names: {{ checkedNames }} new Vue({ el: '...', data: { checkedNames: [] } })

单选按钮



Picked: {{ picked }}
new Vue({ el: '#example-4', data: { picked: '' } })

选择框

单选时:

Selected: {{ selected }}
new Vue({ el: '...', data: { selected: '' } })

如果v-model表达式的初始值未能匹配任何选项,
Selected: {{ selected }}

new Vue({ el: '#example-6', data: { selected: [] } })

v-for渲染的动态选项:


Selected: {{ selected }}

new Vue({
  el: '...',
  data: {
    selected: 'A',
    options: [
      { text: 'One', value: 'A' },
      { text: 'Two', value: 'B' },
      { text: 'Three', value: 'C' }
    ]
  }
})

值绑定


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









但是有时我们可能想把值绑定到vue市里的一个动态属性上,这是可以用v-bind实现,并且这个属性的值乐意不是字符串。

复选框


// 当选中时
vm.toggle === 'yes'
// 当没有选中时
vm.toggle === 'no'

这里的true-valuefalse-value属性并不会影响输入控件的value属性,因为浏览器在提交表单时并不会包含未被选中的复选框。如果要确保表单中这两个值中的一个能够被提交,请换用单选按钮。

单选按钮


// 当选中时
vm.pick === vm.a
选择框的选项


// 当选中时
typeof vm.selected // => 'object'
vm.selected.number // => 123

 

修饰符


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



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


这通常很有用,因为即使在type='number'时,HTML输入元素的值也总会返回字符串。如果这个值无法被parseFloat()解析,则会返回原始值。

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


你可能感兴趣的:(表单输入绑定)