当前位置: 首页 > news >正文

Vue 表单输入绑定,双向绑定

一、v-model 指令

用于Vue 表单双向绑定

用户Vue 组件属性双向绑定

v-model 还可以用于各种不同类型的输入,<textarea><select> 元素。它会根据所使用的元素自动使用对应的 DOM 属性和事件组合:

  • 文本类型的 <input> 和 <textarea> 元素会绑定 value property 并侦听 input 事件;
  • <input type="checkbox"> 和 <input type="radio"> 会绑定 checked property 并侦听 change 事件;
  • <select> 会绑定 value property 并侦听 change 事件。

二、v-model 使用案例

文本

姓名:  <input type="text" v-model="student.name">

多行文本

简介:<textarea v-model="student.summary"></textarea>

单选

所属省份:
<template v-for="item in areas">
    <div>
    <label > <input type="radio" name="area" :value="item" v-model="student.province">{{item}}</label>
    </div>
</template>

<script>
export default {
    data() {
        return {
            student: {
                name: '张三',
                score: 100.5,
                password: ' 1234 '
            },
            age: 10.8,
            areas: ['济南', '聊城', '北京']
        }
    }
}
</script>

多选

多选省份:
<template v-for="item in areas">
    <div>
        <label> <input type="checkbox" name="checkvalue" :value="item" v-model="student.checkvalue">{{ item }}</label>
    </div>
</template>
export default {
    data() {
        return {
            student: {
                checkvalue:[]//多选框需要对应数组
            }
        }
    }
}

下拉选择

下拉选择:
<select v-model="student.sel">
    <option :value="item" v-for="item in areas">{{ item }}</option>
</select>

三、v-model 修饰符

.lazy

默认情况下,v-model 会在每次 input 事件后更新数据 (IME 拼字阶段的状态例外)。你可以添加 lazy 修饰符来改为在每次 change 事件后更新数据:

<!-- 在 "change" 事件后同步更新而不是 "input" -->
<input v-model.lazy="msg" />

.number

如果你想让用户输入自动转换为数字,你可以在 v-model 后添加 .number 修饰符来管理输入:

   <input type="number" v-model.number="student.score">

如果该值无法被 parseFloat() 处理,那么将返回原始值。特别是当输入为空时 (例如用户清空输入字段之后),会返回一个空字符串。

注意:要制定type=number html属性

.trim

如果你想要默认自动去除用户输入内容中两端的空格,你可以在 v-model 后添加 .trim 修饰符:

    <input v-model.number="student.password">

相关文章:

  • 基于 intellij-platform-plugin-template 开发IDEA插件注意事项
  • form 表单内容序列化成一个字符串
  • 大模型架构记录2 【综述-相关代码】
  • 数据服务赋能数据治理:从“One Service”到QuickAPI的演进
  • redis操作
  • 【搜索】dfs(回溯、剪枝、记忆化)
  • 【C++】类和对象(二)默认成员函数之构造函数、析构函数
  • Springboot集成Debezium监听postgresql变更
  • CQL学习
  • 游戏引擎学习第177天
  • 996引擎-接口测试:背包
  • pnpm 报错 Error: Cannot find matching keyid 解决
  • Mybatis的基础操作——03
  • 西交建筑学本科秋天毕业想转码,自学了Python+408,华为OD社招还是考研更香?
  • 第十四章:模板实例化_《C++ Templates》notes
  • 如何编写SLURM系统的GRES资源插件
  • Lustre 语言的 Rust 生成相关的工作
  • Autosar OS配置-Timing Protection配置及实现--基于ETAS工具
  • 题单:精挑细选
  • 生物化学笔记:医学免疫学原理02 抗原概念+免疫应答+抗原的分类
  • 葡萄牙、西班牙发生大范围停电
  • 北京公园使用指南
  • 央行回应美债波动:单一市场、单一资产变动对我国外储影响总体有限
  • 我的科学观|张峥:AI快速迭代,我们更需学会如何与科技共处
  • 这场迪图瓦纪念拉威尔的音乐会,必将成为乐迷反复品味的回忆
  • 教育强国建设基础教育综合改革试点来了!改什么?怎么改?