表单


表单

表单操作

用 v-model 指令在表单元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素.

v-model 会忽略所有表单元素的 valuecheckedselected attribute 的初始值。它将始终将当前活动实例的数据作为数据来源。你应该通过 JavaScript 在组件的 data 选项中声明初始值。

Input 单行文本

  • input事件

Message is: {{ message }}

Textarea 多行文本

  • input事件
Multiline message is:

{{ message }}


插值在 textarea 中不起作用,请使用 v-model 来代替。

Checkbox 复选框

  • change事件

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

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


    Checked names: {{ checkedNames }}
    Vue.createApp({
      data() {
        return {
          checkedNames: []
        }
      }
    }).mount('#v-model-multiple-checkboxes')
    

Radio 单选框

  • change事件


Picked: {{ picked }}
Vue.createApp({
  data() {
    return {
      picked: ''
    }
  }
}).mount('#v-model-radiobutton')

Select 选择框

  • change事件

  • 单选时

    Selected: {{ selected }}
    Vue.createApp({
      data() {
        return {
          selected: ''
        }
      }
    }).mount('#v-model-select')
    

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

  • 用for循环渲染选项

    Selected: {{ selected }}
    Vue.createApp({
      data() {
        return {
          selected: 'A',
          options: [
            { text: 'One', value: 'A' },
            { text: 'Two', value: 'B' },
            { text: 'Three', value: 'C' }
          ]
        }
      }
    }).mount('#v-model-select-dynamic')
    

表单修饰符

.lazy

  • 添加 lazy修饰符,从而转为在 change 事件之后进行同步:


.number

给 v-model 添加 number 修饰符,将用户的输入值转为数值类型


当输入类型为 text 时这通常很有用。如果输入类型是 number,Vue 能够自动将原始字符串转换为数字,无需为 v-model 添加 .number 修饰符。如果这个值无法被 parseFloat() 解析,则返回原始的值。

.trim

自动过滤用户输入的首尾空白字符