vue 表单输入绑定

v-model 指令能够绑定表单元素的value值,实现数据的双向绑定。

  • v-model会忽略表单元素原来的 value checked selected 特性初始的值会以绑定的数据作为展示,当表单元素展示的值发生改变的时候,data中定义的值也会发生相应的改变

  • 单个复选框绑定布尔类型
<input type="checkbox" id="checkbox" v-model="checked">
<label for="checkbox">{{ checked }}</label>
  • 多个复选框,绑定到同一个数组
<div id='example-3'>
  <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>
</div>

new Vue({
  el: '#example-3',
  data: {
    checkedNames: []
  }
})
//选中时候显示相应的值
Checked names: [ "Jack", "John", "Mike" ]
  • 单选按钮
<div id="example-4">
  <input type="radio" id="one" value="One" v-model="picked">
  <label for="one">One</label>
  <br>
  <input type="radio" id="two" value="Two" v-model="picked">
  <label for="two">Two</label>
  <br>
  <span>Picked: {{ picked }}</span>
</div>

new Vue({
  el: '#example-4',
  data: {
    picked: ''
  }
})
//选中的值
Picked: One
  • 选择框单选的时候
<div id="example-5">
  <select v-model="selected">
    <option disabled value="">请选择</option>
    <option>A</option>
    <option>B</option>
    <option>C</option>
  </select>
  <span>Selected: {{ selected }}</span>
</div>

new Vue({
  el: '...',
  data: {
    selected: ''
  }
})
//数据
 Selected: A

v-model select 选项的时候 无法匹配任何值的时候 iso下无法选中第一哥选项

  • 多选项绑定到同一个数组
<div id="example-6">
  <select v-model="selected" multiple style="width: 50px;">
    <option>A</option>
    <option>B</option>
    <option>C</option>
  </select>
  <br>
  <span>Selected: {{ selected }}</span>
</div>

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

  • v-for 渲染动态选项
<select v-model="selected">
  <option v-for="option in options" v-bind:value="option.value">
    {{ option.text }}
  </option>
</select>
<span>Selected: {{ selected }}</span>

new Vue({
  el: '...',
  data: {
    selected: 'A',
    options: [
      { text: 'One', value: 'A' },
      { text: 'Two', value: 'B' },
      { text: 'Three', value: 'C' }
    ]
  }
})
  • 值的绑定
    对于单选按钮,复选框以及选择框,绑定的通常是静态字符串(复选框也可以是布尔值)
<!-- 当选中时,`picked` 为字符串 "a" -->
<input type="radio" v-model="picked" value="a">

<!-- `toggle` 为 true 或 false -->
<input type="checkbox" v-model="toggle">

<!-- 当选中第一个选项时,`selected` 为字符串 "abc" -->
<select v-model="selected">
  <option value="abc">ABC</option>
</select>

如果需要绑定动态的属性可以使用v-bind 来使用

v-bind 和v-model的连用

  • 复选框
<input
  type="checkbox"
  v-model="toggle"
  true-value="yes"
  false-value="no"
>

// 当选中时
vm.toggle === 'yes'
// 当没有选中时
vm.toggle === 'no'
  • 单选按钮
<input type="radio" v-model="pick" v-bind:value="a">

// 当选中时
vm.pick === vm.a
  • 选择框的选项
<select v-model="selected">
    <!-- 内联对象字面量 -->
  <option v-bind:value="{ number: 123 }">123</option>
</select>

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

修饰符

  • .lazy 默认情况下v-modle 的每次在input事件触发之后将输入框与数据同步
    使用v-model.lazy 修饰符只会在change事件更新数据
  • .number v-model.number 会帮输的值自动用paresFloat 转换成number类型当不能转换的时候 会返回原来的值
  • .trim v-model.trim 会自动过滤掉输入值的前后空格

在组件中使用v-model

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、基础用法 你可以用 v-model 指令在表单 及 元素上创建双向数据绑定。它会根据控件类型自动选取正...
    廖马儿阅读 4,882评论 0 0
  • 基础用法 你可以用 v-model 指令在表单 、 及 元素上创建双向数据绑定。它会根据控件类型自动选取正...
    Program_黑阅读 3,666评论 0 5
  • 事件处理 监听事件 可以用v-on指令监听DOM事件,并在触发时运行一些JavaScript代码。 事件处理方法 ...
    oWSQo阅读 4,406评论 0 1
  • 祭出demo 你可以用v-model 指令在表单 及 元素上创建双向数据绑定。它会根据控件类型自动选取正确...
    rainbowboy阅读 5,550评论 0 48
  • 主要还是自己看的,所有内容来自官方文档。 介绍 Vue.js 是什么 Vue (读音 /vjuː/,类似于 vie...
    Leonzai阅读 8,653评论 0 25