vue3-表单输入绑定

表单输入绑定

获取表单输入的值方式:

  1. 手动连接值绑定和更改事件监听器

  2. v-model 指令 (常用)

<script lang="ts" setup>
import { ref } from "vue"
// 定义个变量接收输入的内容:
const text = ref("111")
const text2 = ref("222")</script><template><div class="container"><section><!-- 输入内容通过事件绑定值: --><p>默认的value是 111</p><input :value="text" @input="event => text = event?.target?.value" /><div>这是输入的值{{ text }}</div></section><section><!-- v-model 指令帮我们简化了这一步骤 --><p>默认的value是 222</p><input v-model="text2" value="888"><div>这是输入的值{{ text2 }}</div></section></div>
</template><style lang="scss" scoped>
.container {section {margin-bottom: 20px;}
}
</style>

示例:

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

表单类型绑定属性值绑定事件
inputvalueinput
textareavalueinput
checkboxcheckedchange
radiochecked

change

selectvaluechange

v-model 会忽略任何表单元素上初始的 value、checked 或 selected attribute。它将始终将当前绑定的 JavaScript 状态视为数据的正确来源。

比如下面 888 值不显示 无效的

<input v-model="text2" value="888">

表单基本用法

  1. 文本

  2. 多行文本

  3. 复选框

  4. 单选按钮

  5. 选择器

<script lang="ts" setup>
import { ref } from "vue"
// 定义个变量接收输入的内容:
const f1 = ref("f1的默认值")
const f2 = ref("f2的默认值")
const f3 = ref(true)
const f4 = ref([])
const f5 = ref('女')
const f6 = ref('深圳')</script><template><div class="container"><section><p>input输入框</p><p>f1的值是: {{ f1 }}</p><input v-model="f1" placeholder="请输入" /></section><section><p>多行文本</p><!-- 错误 --><!-- <textarea>{{ text }}</textarea> --><p>f2的值是: {{ f2 }}</p><!-- 正确 --><textarea v-model="f2" rows="3"></textarea></section><section><p>复选框</p><p>单个</p><input type="checkbox" id="checkbox" v-model="f3" /> <label for="checkbox">统一协议</label><br><label for="checkbox">f3的值是:{{ f3 }}</label><br><br><p>多个</p><input type="checkbox" id="h1" value="篮球" v-model="f4" /> <label for="h1">篮球</label><input type="checkbox" id="h2" value="足球" v-model="f4" /> <label for="h2">足球</label><input type="checkbox" id="h3" value="排球" v-model="f4" /> <label for="h3">兵乓球</label><br><label for="checkbox">f4的值是:{{ f4 }}</label></section><section><p>单选按钮</p><p>f5的值是: {{ f5 }}</p><input type="radio" id="one" value="男" v-model="f5" /><label for="one">男</label><input type="radio" id="two" value="女" v-model="f5" /><label for="two">女</label></section><section>选择器<div>f6的值是 : {{ f6 }}</div><select v-model="f6" multiple><option disabled value="">请选择一个你喜欢的城市</option><option>北京</option><option>上海</option><option>深圳</option><option>广州</option></select></section></div>
</template><style lang="scss" scoped>
.container {section {margin-bottom: 20px;}label {margin-right: 10px;}select {margin: 20px;padding: 20px;}
}
</style>

示例:

复选框 true-value 和 false-value 属性

<inputtype="checkbox"v-model="toggle"true-value="yes"false-value="no" />// 动态渲染
<inputtype="checkbox"v-model="toggle":true-value="dynamicTrueValue":false-value="dynamicFalseValue" />

true-value 和 false-value 是 Vue 特有的 attributes,仅支持和 v-model 配套使用。

  • 这里 toggle 属性的值会在选中时被设为 'yes',取消选择时设为 'no'。你同样可以通过 v-bind 将其绑定为其他动态值:

选择器,非字符串类型的值绑定

...
...const selected = ref({ number: 111 })
...
...<section><p>selected 的值是:{{ selected }}</p><select v-model="selected"><!-- 内联对象字面量 --><option :value="{ number: 111 }">111</option><option :value="{ number: 222 }">222</option></select></section>

示例:

修饰符

  • .lazy 每次 change 事件后更新数据 (节流)

  • .number 用户输入自动转换为数字

  • .trim 自动去除用户输入内容中两端的空格

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/414618.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

制造业工厂为什么要实施MES系统呢?

MES是生产管理系统&#xff0c;生产管理是通过对生产系统的战略计划、组织、指挥、实施、协调、控制等活动&#xff0c;实现系统的物质变换、产品生产、价值提升的过程。在企业的价值链中&#xff0c;生产经营是企业核心能力的重要组成部分。 实施MES系统的原因 MES系统是中国比…

ONLYOFFICE服务器无法连接,请联系管理员问题解决

1、现象 部署好了nextcloud和onlyoffice后&#xff0c;新建文本文档报错ONLYOFFICE服务器无法连接&#xff0c;请联系管理员。 用快捷键“F12”进入控制台&#xff0c;点开错误提示栏&#xff0c;找到有“api.js“文件&#xff0c;“https://ONLYOFFICED的地址/web-apps/apps/…

【生态适配】亚信安慧AntDB数据库与契约锁完成兼容互认

日前&#xff0c;亚信安慧AntDB数据库与上海亘岩网络科技有限公司&#xff08;简称:契约锁&#xff09;研发的契约锁电子签章产品完成兼容互认。经过双方团队的严格测试&#xff0c;亚信安慧AntDB数据库与契约锁&#xff08;V4&#xff09;完全兼容&#xff0c;整体运行稳定高效…

UE5 播放rtsp监控视频

1. 插件下载 https://github.com/inveta/InVideo https://github.com/inveta/InVideo/releases https://download.csdn.net/download/qq_17523181/88760489?spm1001.2014.3001.5501 插件目前支持5.1 / 5.0 2. 建立C UE5项目 重要&#xff1a;此插件支持C项目&#xff0c;不然不…

打造更智能的应用 - 机器学习和Andorid

打造更智能的应用 - 机器学习和Andorid 一、关于机器学习和Andorid二、使用 Gemini 让您的 Android 应用如虎添翼2.1 Gemini API2.2 Android AICore 三、现成可用的还是自定义的机器学习3.1 机器学习套件 SDK 的常见用户流3.2 高性能自定义机器学习 四、机器学习套件 SDK&#…

明渠流量监测站的优势

明渠流量监测站的优势相对于传统监测站来说较为明显。首先&#xff0c;明渠流量监测站可以适应各种形态的水流条件&#xff0c;包括矩形、梯形和涵洞等不同类型的明渠。其次&#xff0c;其采用了先进的在线监测技术&#xff0c;如超声波明渠流量计、多普勒明渠流量计和多声道明…

Apache Doris (六十六): Flink Doris Connector - (3)-配置及类型映射

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录

【Vue】Vue 路由的配置及使用

目录捏 前言一、路由是什么&#xff1f;1.前端路由2.后端路由 二、路由配置1.安装路由2.配置路由 三、路由使用1.route 与 router2. 声明式导航3. 指定组件的呈现位置 四、嵌套路由&#xff08;多级路由&#xff09;五、路由重定向1.什么是路由重定向&#xff1f;2.设置 redire…

Sentinel限流规则-流控效果

流控效果是指请求达到流控阈值时应该采取的措施&#xff0c;包括三种&#xff1a; 1.快速失败&#xff1a;达到阈值后&#xff0c;新的请求会被立即拒绝并抛出FlowException异常。是默认的处理方式。 2.warm up&#xff1a;预热模式&#xff0c;对超出阈值的请求同样是拒绝并抛…

使用的uview 微信高版本 头像昵称填写能力

<template><view><button class"cu-btn block bg-blue margin-tb-sm lg" tap"wxGetUserInfo">一键登录</button><view><!-- 提示窗示例 --><u-popup :show"show" background-color"#fff">&…

比特币狂人引爆达沃斯论坛

点击查看TechubNews原文链接&#xff1a;比特币狂人引爆达沃斯论坛 比特币狂人、自称无政府资本主义者的阿根廷总统米莱在达沃斯的最新演讲引爆社交网络大讨论。 1 月 15 日&#xff0c;第 54 届世界经济论坛在瑞士阿尔卑斯山的达沃斯开幕。来自约 60 个国家首脑和跨国公司的领…

微店商品详情API(micro.item_get)的数据分析和挖掘

随着电商行业的迅猛发展&#xff0c;微店作为电商平台的重要组成部分&#xff0c;提供了丰富的API接口供开发者使用。其中&#xff0c;微店商品详情API&#xff08;micro.item_get&#xff09;是用于获取商品详情的接口&#xff0c;为数据分析和挖掘提供了大量有价值的数据源。…