Vue中的表单输入绑定,双向绑定方式

 更新时间:2025年03月25日 16:37:44   作者:天马3798  
这篇文章主要介绍了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">

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue3+Tsx给路由加切换动画时的踩坑及解决

    Vue3+Tsx给路由加切换动画时的踩坑及解决

    这篇文章主要介绍了Vue3+Tsx给路由加切换动画时的踩坑及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Vue.js项目在IE11白屏报错的解决方法

    Vue.js项目在IE11白屏报错的解决方法

    本文主要介绍了Vue.js项目在IE11白屏报错的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • 浅析vue插槽和作用域插槽的理解

    浅析vue插槽和作用域插槽的理解

    插槽,也就是slot,是组件的一块HTML模板,这块模板显示不现实、以及怎样显示由父组件来决定。这篇文章主要介绍了浅析vue插槽和作用域插槽的理解,需要的朋友可以参考下
    2019-04-04
  • UniApp中实现类似锚点定位滚动效果

    UniApp中实现类似锚点定位滚动效果

    一个uniapp小程序的项目,我们需要实现一个非常实用的功能——类似于锚点定位的交互效果,即在首页中有多个tab(分类标签),每个tab对应着不同的模块,当用户点击某个分类的tab时,需要流畅地滚动到对应的内容位置,提供更好的用户体验,
    2023-10-10
  • 基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能

    基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能

    这篇文章主要介绍了基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Vue3中样式渗透:deep()无效的原因分析

    Vue3中样式渗透:deep()无效的原因分析

    今天学习 /deep/ 样式穿透,因为vue3中已经使用:deep()取代了/deep/ ,所以直接用:deep()练习,这篇文章主要介绍了Vue3中样式渗透:deep()为什么无效,需要的朋友可以参考下
    2022-11-11
  • vue better scroll 无法滚动的解决方法

    vue better scroll 无法滚动的解决方法

    better scroll可以实现轮播图和页面滚动,是移动端滚动插件,这篇文章主要介绍了vue better scroll 无法滚动的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • iview同时验证多个表单问题总结

    iview同时验证多个表单问题总结

    这篇文章主要介绍了iview同时验证多个表单问题总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • vue3中的hook简单封装

    vue3中的hook简单封装

    这篇文章主要介绍了vue3中的hook简单封装,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue 点击展开显示更多(点击收起部分隐藏)

    vue 点击展开显示更多(点击收起部分隐藏)

    这篇文章主要介绍了vue 点击展开显示更多(点击收起部分隐藏),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论