表单输入绑定

基础用法

  • v-model指令在表单<input><textarea>元素上创建双向数据绑定
  • v-model会忽略所有表单元素的value,checked,selected特性的初始值而总是将vue实例的数据作为数据来源。你应该通过JavaScript在组件的data选项中声明初始值

复选框

<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: []
  }
})

单选按钮

<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: ''
  }
})

选择框

<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: ''
  }
})

修饰符

.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">
    
posted @ 2018-03-13 19:07  不完美的完美  阅读(179)  评论(0编辑  收藏  举报