uniapp如何添加多个表单数组?

目录

一、实现思路

二、实现步骤

        ①view部分展示

        ②JavaScript 内容

        ③css中样式展示

        

三、效果展示

四、小结 + 注意事项

        总结模板:


一、实现思路

        1.在 data 中定义一个数组,用于存储表单项的数据

        2.在模板中使用 v-for 指令渲染表单项

        3.在 methods 中定义添加和删除表单项的方法

        每点击一次 “添加表单项” 按钮,就会新增一个表单项

        并且你可以通过输入框的 v-model 来动态修改表单项的值。点击对应的 “删除” 按钮可以移除对应的表单项。

        

二、实现步骤

        ①view部分展示

<view style="background-color: #e5e5e5;padding: 32rpx;">
			<view class="publish-top-two" style="margin: 32rpx; ">
				<template v-for="(item,index) in exigencyList">
					<view class="publish-top" style="position: relative; padding: 32rpx;" :key="index">
						<view class="upload-title">紧急联系人{{ item.num }}</view>
						<view class="person-item">
							<view class="flex">
								<view class="asterisk">*</view>
								<view class="item-left">姓名</view>
							</view>
							<u-input v-model="item.name" border="none" placeholder="请输入姓名"
								placeholderStyle="color: #999"></u-input>
						</view>
						<view class="person-item">
							<view class="flex">
								<view class="asterisk">*</view>
								<view class="item-left">手机号</view>
							</view>
							<u-input v-model="item.telephone" border="none" placeholder="请输入手机号"
								placeholderStyle="color: #999"></u-input>
						</view>
						<view class="person-item">
							<view class="flex">
								<view class="asterisk">*</view>
								<view class="item-left">关系</view>
							</view>
							<u-input v-model="item.relation" border="none" placeholder="请输入关系"
								placeholderStyle="color: #999"></u-input>
						</view>
						<view style="position: absolute;top: -5px;left: -5px;width: 40rpx;height: 40rpx;"
							v-if="index != 0" @click.stop="reduceGoods(index)">
							<!-- 								<u-icon name="minus-circle" color="Error" size="22"></u-icon> -->
							<image style="width: 100%;height: 100%;"
								src="../../pagesLeave/static/information/reduce.png" mode="aspectFill"></image>
						</view>
					</view>
				</template>
			</view>
			<view class="addexigencybth" @click="getadd">添加联系人</view>
		</view>

        ②JavaScript 内容

<script>
	export default {
		data() {
			return {
				exigencyList: [{
						num: '1',
						name: '',
						telephone: '',
						relation: '',
					},
					{
						num: '2',
						name: '',
						telephone: '',
						relation: '',
					}
				],
			}
		},
		methods: {
			// 添加紧急联系人
			getadd() {
				this.exigencyList.push({
					num: '1',
					name: '',
					telephone: '',
					relation: '',
				})
				//新增默认加 0.1
				// this.form.salary += 0.1
			},
			//减少紧急联系人
			reduceGoods(index) {
				this.exigencyList.splice(index, 1)
				// 需要去除减少物品的价格
				let count = 0
				for (let i = 0; i < this.tabList; i++) {
					count += this.tabList[i].fetchMoney
				}
				// this.form.salary = count
			},

		

		}
	}
</script>

        ③css中样式展示

<style lang="scss" scoped>
	.publish-top {
		margin: 12px 16px 0px 16px;
		background-color: #fff;
		border-radius: 16rpx;

		.person-item {
			display: flex;
			align-items: center;
			padding: 32rpx;
			border-bottom: 1px solid #E6E6E8;
		}

		//紧急联系人
		.publish-top-two {
			position: absolute;
			left: auto;
			top: 104px;

			.publish-top {
				position: relative;
				background-color: #fff;
				border-radius: 16rpx;

				.reduce-btn {
					position: absolute;
					top: 0px;
					left: 0px;
					width: 40rpx;
					height: 40rpx;

					image {
						width: 100%;
						height: 100%;
					}
				}
			}
		}
	}

	.asterisk {
		color: rgba(255, 128, 128, 1);
		margin-right: 10rpx;
		margin-top: 12rpx;
	}

	.item-left {
		color: #1A1A1A;
		font-family: MiSans-Medium, MiSans;
		font-weight: 500;
		font-size: 32rpx;
		margin-right: 32rpx;
	}

	.item-right {
		text-align: right;
		font-size: 32rpx;
		color: #333
	}

	.addexigencybth {
		height: 88rpx;
		margin: 12px 16px 0px 16px;
		background-color: #fff;
		border-radius: 16rpx;
		display: flex;
		align-items: center;
		justify-content: center;
		color: #1A1A1A;
		font-size: 32rpx;
		font-weight: 500;
	}
</style>

        

三、效果展示

        点击添加按钮就会添加一个输入框

        点击减少,就会减少输入框

       

        

四、小结 + 注意事项

        总结模板:

 在模板中使用 v-for 指令渲染表单项 <div>
    <div v-for="(item, index) in formItems" :key="index">
      <input type="text" v-model="item.value">
      <button @click="removeFormItem(index)">删除</button>
    </div>
    <button @click="addFormItem">添加表单项</button>
  </div>

  在 data 中定义一个数组,用于存储表单项的数据
data() {
  return {
    formItems: []
  }
}

在 methods 中定义添加和删除表单项的方法

methods: {
  addFormItem() {
    this.formItems.push({ value: '' });
  },
  removeFormItem(index) {
    this.formItems.splice(index, 1);
  }
}

        这样就完成了在uni-app中添加多个表单数组的功能。每次点击“新增”按钮时,会自动添加一个新的表单项;而点击已存在的表单项右侧的“删除”按钮时,则会从列表中移除该表单项。

        表单中至少保留一条表单项,必须要有添加按钮,和移除按钮

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue实现跳转传参查询

vue实现跳转传参查询&#xff1a; 应用场景&#xff1a;外部链接携参跳转目标页时,避免多次输入查询信息查询 目标需求&#xff1a;登录及非登录状态均可跳转自动查询 避坑指南&#xff1a;token失效时需要重新缓存及路由导航缓存判断 简单实现&#xff1a;缓存信息&#xff0c…

2024年,AI 掀起数据与分析市场的新风暴

2024 年伊始&#xff0c;Kyligence 联合创始人兼 CEO 韩卿在其公司内部的飞书订阅号发表了多篇 Rethink Data & Analytics 的内部信&#xff0c;分享了对数据与分析行业的一些战略思考&#xff0c;尤其是 AI 带来的各种变化和革命&#xff0c;是如何深刻地影响这个行业乃至…

jupyter出现问题ModuleNotFoundError: No module named ‘exceptiongroup‘

今天使用pyg的jupyter环境发现这个环境没法用, 所以只能把这个kernel给重删了然后再装&#xff0c;操作记录如下 查看kernel jupyter kernelspec list注意不是jupyter kernel --list 需要加关键字spec, 删除kernel jupyter kernelspec remove pyg当重新安装这个kernel时可能…

macos Android平台签名证书(.keystore)

一、申请appid的使用说明&#xff08;有appid的请忽略申请appid&#xff09; 创建应用 申请的appid在源码视图填写后会自动生成一个对应的包名 ⚠️注意&#xff1a;申请appid的时候应用名称和项目名称保持一致。 二、 Android如何使用自用证书进行打包 1.找到安装jdk的路径…

【学习笔记】vue3的watch

尚硅谷Vue2.0Vue3.0全套教程丨vuejs从入门到精通 课程 P152节 笔记&#xff1a; 情况一&#xff1a;监视ref所定义的一个响应式数据 情况二&#xff1a;监视ref所定义的多个响应式数据 这两种情况比较简单&#xff0c;正常写就ok&#xff1a; 情况三&#xff1a;监视reactive所…

Qt|QPushButton控件讲解

前提 按钮分为了四种状态&#xff1a;常态、聚焦、按下、禁用 前一段时间更新了MFC框架下CButton的自绘。因为MFC框架下的按钮限制性很高&#xff0c;所以只能由自绘实现各种风格&#xff0c;但是QT框架完美的解决了这个问题&#xff0c;我们只需要了解如何调用&#xff0c;就…

MySQL-窗口函数

介绍&#xff1a; MSQL8.0新增窗口函数商口函数又被称为开窗函数&#xff0c;与Oracle窗口函数类似&#xff0c;属于MysaL的一大特点 非聚合窗口函数是相对于聚函数来说的。聚合函数是对一组数据计算后返回单个值(即分组)&#xff0c;非聚合函数一次只会处理一行数据。窗口聚…

buffer/cache导致内存不足的案例分析

目录 一、项目简介 二、问题分析 三、问题处理 什么是buffer/cache&#xff1f; buffer/cache 需要注意的一些特点 如何进行手动 buffer/cache 回收 手动 buffer/cache 回收可能出现的问题 如何让系统自动回收buffer/cache vm.min_free_kbytes 四、参考文献 一、项目…

亚信安慧AntDB:AntDB-M元数据锁(八)

5.6 死锁检测 图4-死锁等待 每个线程在进入锁等待前&#xff0c;都会先进行死锁检测&#xff0c;避免陷入死锁等待。在检测前&#xff0c;会先将自己获取到的unobtrusive锁进行物化&#xff0c;即将锁放入锁的授予列表中&#xff0c;以便死锁检测能区分锁的归属线程。然后设置…

Proto文件如何生成JavaProto对象?

首先安装好Protocol Buffer的编译器 Protocol Buffer: version:2.6.1 link: 链接直达 根据电脑环境进行下载&#xff0c;Widnwos 32/64位就选择win32是没问题的&#xff0c;楼主亲测 1.proto文件编写 Person.proto public class Person {String name;int id;String email…

【高阶数据结构】AVL树

文章目录 前言1. 什么是二叉搜索树2. 什么是AVL树3. AVL树节点的定义4. AVL树的插入4.1 新节点插入较高右子树的右侧4.2 新节点插入较高左子树的左侧4.3 新节点插入较高左子树的右侧4.4 新节点插入较高右子树的左侧插入操作完整代码插入操作总结 AVL树的验证AVL树的删除AVL树性…

git push后,如何撤销git log上的错误注释

修改了本地的代码&#xff0c;执行了下面的操作&#xff0c;提交之后&#xff0c;怎么样修改 git add ********(文件名)//git add 添加修改文件名之后 git commit //git commit 在当前分支提交&#xff0c;编写提交注释 git push //git push 提交修…

虹科干货 | 如何使用nProbe Cento构建100 Gbit NetFlow 传感器

本文是一份全面的指南&#xff0c;解释了如何使用nProbe Cento构建一个高效的100 Gbit NetFlow传感器。旨在帮助大家充分利用NetFlow技术&#xff0c;以监控和分析高速网络流量。 当需要监控分布式网络&#xff0c;了解流经上行链路或关键网段的网络流量时&#xff0c;NetFlow…

ES实战回顾

1、你用的集群节点情况&#xff1f; 一个ES集群&#xff0c;18个节点&#xff0c;其中3个主节点&#xff0c;15个数据节点&#xff0c;500G左右的索引数据量&#xff0c;没有单独的协调节点&#xff0c;它的每个节点都可以充当协调功能&#xff1b; 2、你们常用的索引有哪些&a…

【游戏服务器部署】幻兽帕鲁服务器一键部署保姆级教程,游戏私服还是自己搭建的香

在帕鲁的世界&#xff0c;你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活&#xff0c;也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活&#xff0c;也可以为你在工厂工作。你也可以将它们进行售卖&#xff0c;或肢解后食用。—幻兽帕鲁 想要…

AI工具【OCR 01】Java可使用的OCR工具Tess4J使用举例(身份证信息识别核心代码及信息提前方法分享)

Java可使用的OCR工具Tess4J使用举例 1.简介1.1 简单介绍1.2 官方说明 2.使用举例2.1 依赖及语言数据包2.2 核心代码2.3 识别身份证信息2.3.1 核心代码2.3.2 截取指定字符2.3.3 去掉字符串里的非中文字符2.3.4 提取出生日期&#xff08;待优化&#xff09;2.3.5 实测 3.总结 1.简…

RocketMq5源码搭建

最近公司使用到了RocketMQ,所以打算研究一下RocketMQ 准备自己动手搭建一下RocketMq源码 前提 需要搭建jdk环境&#xff0c;jdk版本需要高于1.8 首先 从github 拉源码 源码地址&#xff1a;rocketMq源码传送门 启动namesrv 启动之前需要配置一下ROCKERMQ_HOME 配置如下&a…

力扣hot100 括号生成 递归回溯 超简洁版

Problem: 22. 括号生成 Code 使用 static 会被复用 class Solution {List<String> ans new ArrayList<>();public List<String> generateParenthesis(int n){dfs(n, n, "");return ans;}/*** param l 左括号待补个数* param r 右括号待补个数*…

基于SpringBoot+Vue的甘肃非物质文化网站(V2.0),附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

如何在Shopee泰国站点进行有效的选品

在Shopee泰国站点进行选品时&#xff0c;卖家可以采取一些策略来提高产品的市场竞争力和销售业绩。以下是一些可以遵循的策略&#xff1a; 先给大家推荐一款shopee知虾数据运营工具知虾免费体验地址&#xff08;复制浏览器打开&#xff09;&#xff1a;D。dDqbt。Com/JU5o知虾…