《vue2.0 · 表单输入绑定》

116 阅读1分钟

刚开始学的时候,真的被复选框的v-model坑过,傻傻的每个都绑定了同一个字符串,结果发现点击一个,其余的都会变,然后返回去看了一下官网才知道,是要绑定数组的,而且还要指定value的值,每次点击,对应的值就会存入数组中。

GIF 2022-1-11 18-43-42.gif

```<template>
  <div>
    <!-- Vue建议v-model用在input,textarea,select -->
    <ul>
      <li>
        <input type="text" v-model="mode1" />
        <span>mode1: {{ mode1 }}</span>
      </li>
      <li>
        <textarea name="" id="" cols="30" rows="10" v-model="mode2"></textarea>
        <span>mode2: {{ mode2 }}</span>
      </li>
      <li>
        <select name="" id="" v-model="mode3">
          <option value="派大星">派大星</option>
          <option value="海绵宝宝">海绵宝宝</option>
          <option value="章鱼哥">章鱼哥</option>
        </select>
        <span>mode3: {{ mode3 }}</span>
      </li>
      <li>
        <!-- 我觉得有坑点的地方就是在复选框这块,需要注意 -->
        <!-- 绑定v-model绑定一个数组,值是value -->
        <input type="checkbox" value="派大星" v-model="arr" />
        <input type="checkbox" value="章鱼哥" v-model="arr" />
        <input type="checkbox" value="海绵宝宝" v-model="arr" />
        <span>arr:{{ arr }}</span>
      </li>
      <li>
        <input type="radio" value="珊迪" v-model="str" />
        <input type="radio" value="痞老板" v-model="str" />
        <span>str:{{ str }}</span>
      </li>
      <li>
        <!-- lazy是v-model的修饰符之一,该input事件触发后数据才会同步 -->
        <input type="text" v-model.lazy="last" />
        <span>last:{{ last }}</span>
      </li>
      <li>
        <!-- number是v-model的修饰符之一,转v-model的绑定的值为数字 -->
        <input type="text" v-model.number="num" />
        <span>num:{{ num }}</span>
      </li>
      <li>
        <!-- trim是v-model的修饰符之一,将绑定的字符串去除两边的空格 -->
        <input type="text" v-model.trim="space" />
        <span>space:{{ space }}</span>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data () {
    return {
      mode1: '',
      mode2: '',
      mode3: '',
      arr: [],
      str: '',
      last: '',
      num: '',
      space: ''
    }
  }
}
</script>