❤ Uniapp使用二 ( 日常使用篇)

❤ Uniapp使用二 ( 日常使用篇)

一、表单

1、基础表单验证 form

<form @submit="formSubmit" @reset="formReset"> <view class="uni-form-item uni-column"><view class="title">请选择类型{{selectvalue}}</view><view><uni-data-selectv-model="selectvalue":localdata="selectList"@change="changeselect"></uni-data-select></view>
</view>
</form>

优点:
简单清晰

缺点:
验证起来自己写的验证规则很麻烦

// 表单提交formSubmit: function(e) {console.log('form发生了submit事件,携带数据为:' + JSON.stringify(e.detail.value))var formdata = e.detail.valueuni.showModal({content: '表单数据内容:' + JSON.stringify(formdata),showCancel: false});},// 表单重置formReset: function(e) {console.log('清空数据')},

2、uni-forms表单验证

<template><view><uni-forms ref="form" :modelValue="formData" :rules="rules"><uni-forms-item label="姓名" name="name"><uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" /></uni-forms-item><uni-forms-item label="邮箱" name="email"><input class="input" v-model="formData.email" type="text" placeholder="请输入邮箱" @input="binddata('email',$event.detail.value)" /></uni-forms-item></uni-forms><button @click="submit">Submit</button></view>
</template>
export default {data() {return {// 表单数据formData: {name: 'LiMing',email: 'dcloud@email.com'},rules: {// 对name字段进行必填验证name: {rules: [{required: true,errorMessage: '请输入姓名',},{minLength: 3,maxLength: 5,errorMessage: '姓名长度在 {minLength} 到 {maxLength} 个字符',}]},// 对email字段进行必填验证email: {rules: [{format: 'email',errorMessage: '请输入正确的邮箱地址',}]}}}},methods: {/*** 复写 binddata 方法,如果只是为了校验,无复杂自定义操作,可忽略此方法* @param {String} name 字段名称* @param {String} value 表单域的值*/// binddata(name,value){// 通过 input 事件设置表单指定 name 的值//   this.$refs.form.setValue(name, value)// },// 触发提交表单submit() {this.$refs.form.validate().then(res=>{console.log('表单数据信息:', res);}).catch(err =>{console.log('表单错误信息:', err);})}}
}

3、表单单个验证未生效

uni-easyinput 在1.1.0新增 @change
在这里插入图片描述

@change="changeIdcard"// 验证身份证号
changeIdcard(){console.log(this.valiFormData.cardId,'身份证');if(this.valiFormData.cardId!=''){let iphoneReg = (/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/); if (!iphoneReg.test(this.valiFormData.cardId)) {console.log('测试身份证号!');this.valiFormData.cardId='';uni.showToast({title:'身份证格式不正确,请重新填写!',icon:'none',duration:2000,})return false;}else{return true;}}
},

二 、表单基础组件

1、输入框

uniapp input 限制输入数字

<input class="uni-input info-content input-len" type="text" maxlength="30" @input="replaceInput" v-model="value" />replaceInput(event){const screeningStr = /[^\d]/g;      //想禁止什么类型,在这里替换正则就可以了if(screeningStr.test(event.target.value)){this.value = event.target.value.replace(screeningStr,'');}eles{this.value = event.target.value;}
}只能输入数字
const inputType = /[^\d]/g      
只能输入字母
const inputType = /[^a-zA-Z]/g      
只能输入数字和字母
const inputType =/[\W]/g
只能输入小写字母
const inputType =/[^a-z]/g
只能输入大写字母
const inputType =/[^A-Z]/g
只能输入数字和字母和下划线
const inputType =/[^\w_]/g //下划线也可以改成%
只能输入中文
const inputType =/[^\u4E00-\u9FA5]/g
只能输入数字和小数点
const inputType =/[^\d.]/g

输入框问题

uniapp微信小程序input的type设置成number不起作用
这个type控制的其实是手机弹出输入法键盘,微信开发者工具调试看不出效果来,所以无需处理

2、下拉选择框

//结构 <view><uni-data-selectv-model="type":localdata="range"@change="change":clear="false"label="消息类型"placeholder="请选择"emptyText="暂无类型"></uni-data-select>
</view>//数据
value: 0,
range: [{ value: 1, text: "系统信息" },{ value: 2, text: "医生信息" },
],//下拉方法
change(e) {console.log("e:", e);
},

3、上传组件 u-upload的使用

<u-upload ref="uploads" @on-choose-complete="uploadImage" :preview-full-image="false":auto-upload="false" upload-text="添加" max-count="1">
</u-upload>

4、进度条

<progress :percent="progressvalue" show-info stroke-width="3" />progressvalue:60,
backgroundColor:未选择的进度条的颜色
show-info 展示右侧提示
stroke-width	Number	6	进度条线的宽度,单位px
duration="40" 进度增加1%所需毫秒数
border-radius  圆角大小

5、picker弹出选择的使用

<template><view><text>选择器:{{ selectedValue }}</text><picker v-model="selectedValue" :range="rangeData" range-key="id" @change="handleChange"></picker></view>
</template><script>
export default {data() {return {selectedValue: '', // 绑定选中的值rangeData: [{ id: 1, value: '选项1' },{ id: 2, value: '选项2' },{ id: 3, value: '选项3' }]};},methods: {handleChange(event) {console.log('选中的选项:', event.target.value);}}
};
</script>

数组中对象类型详细使用

<picker  :value="selectedType" :range="rangeData"  range-key="value"  @change="bindPickerChange">
<view class="uni-input">{{rangeData[selectedType].value}}</view>
</picker>// 1 selectedType 相当于下标
selectedType: '', // 绑定选中的值// 2 rangeData 数据 rangeData: [{ id: 1, value: '成人1' },{ id: 2, value: '儿童2' },{ id: 3, value: '孕妇3' }
],// 3  事件
bindPickerChange(event) {console.log('选中的选项:', event.target.value);this.selectedType= event.target.value;
},

三、需求

1、uniapp提示信息之后再跳转页面

记载提示 uni.showLoading


// 加载提示
uni.showLoading({title: '提示信息',mask: false, // 是否可以
});//关闭弹窗
this.hideLoading();

问题:

uniapp提示成功之后再跳转页面
uni.showToast({title: "hello world",duration: 2000
})setTimerout(() => {uni.navigateTo({url: "/pages/index/index"})
}, 2000)

2、 uni-app:实现picker下拉列表的默认值设置

(1)

在data中将index的初始值设置为-1,表示未选择任何选项:

index: -1, //选择的下拉列表下标
(2)

在bindPickerChange事件处理函数中添加条件判断。如果选择的值是-1,则将this.index设置为"请输入",否则将其设置为选择的下标值

bindPickerChange8: function(e) {if (e.detail.value === -1) {this.index8 = '请输入';} else {this.index8 = e.detail.value;//更新选择的下拉下标 this.ifname = this.selectDatas8[e.detail.value]; // 更新选择的数据}// 其他逻辑...}
(3)

在模板中使用{{selectDatas[index]}}来显示选择的值。如果index8为-1,则会显示"请输入"

{{index === -1 ? '请输入' : selectDatas[index]}}

完整

<template><view><picker style="border:1px solid black" name="ifname" @change="bindPickerChange8" :value="index8" :range="selectDatas8"><view>{{index8 === -1 ? '请输入' : selectDatas8[index8]}}</view></picker></view>
</template>
<script>export default {data() {return {index8: -1, //选择的下拉列表下标,selectDatas8: ['ETH0', 'ETH1', 'WLAN1', 'WLAN2'], //下拉数组ifname: '', //网口选择};},methods: {//下拉列表选择模式bindPickerChange8: function(e) {console.log('picker发送选择改变,携带下标为', e.detail.value)console.log('picker发送选择改变,携带值为' + this.selectDatas8[e.detail.value]) if (e.detail.value === -1) {this.index8 = '请输入';} else {this.index8 = e.detail.value;//更新选择的下拉下标  this.ifname = this.selectDatas8[e.detail.value]; // 更新选择的数据}},},};
</script>
<style></style>

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

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

相关文章

Go语言中的HTTP请求发送

在Go语言中&#xff0c;发送HTTP请求是一种常见的网络操作。Go语言的net/http包提供了强大的API&#xff0c;使开发者能够轻松地构建HTTP请求并处理响应。 下面我们将详细介绍如何使用Go语言发送HTTP请求&#xff0c;包括设置请求参数、处理响应状态码和头部信息、发送JSON数据…

2024年,如何更好地守护智能网联汽车出海网络安全与隐私安全?

近年来全球各国陆续出台了很多网络安全与数据合规相关的法律法规&#xff0c;如欧盟的《通用数据保护准则GDPR》、美国的《加州消费者信息保护法CCPA》、新加坡的《隐私数据保护法PDPA》等。在国内全国人大发布了《网络安全法》、《数据安全法》、《个人信息保护法》法律&#…

poi解析word取参数方法${参数名}获取参数异常处理(2024-01-12)

poi 读取word模板&#xff0c;确保 ${参数名} 在一个XWPFRun XWPFDocument读取word模板&#xff0c;经常遇到 ${参数名} 没有被识别在一个XWPFRun中&#xff0c;导致参数解析异常如法实现参数替换。 这里只是介绍word模板参数解析问题&#xff0c;让word格式如何转换为可以正常…

【MATLAB随笔】遗传算法优化的BP神经网络(随笔,不是很详细)

文章目录 一、算法思想1.1 BP神经网络1.2 遗传算法1.3 遗传算法优化的BP神经网络 二、代码解读2.1 数据预处理2.2 GABP2.3 部分函数说明 一、算法思想 1.1 BP神经网络 BP神经网络&#xff08;Backpropagation Neural Network&#xff0c;反向传播神经网络&#xff09;是一种监…

解析HTTP响应的JSON数据

解析HTTP响应的JSON数据是许多Web开发任务中的常见需求。在Go语言中&#xff0c;可以使用标准库中的encoding/json包来轻松解析JSON数据。下面我将详细介绍如何解析HTTP响应的JSON数据。 首先&#xff0c;确保你已经发送了一个HTTP请求并获取到了响应。然后&#xff0c;你可以…

智能管理护航制造企业安全生产:信息化升级解决方案解析-亿发

安全生产信息化是通过充分利用信息技术&#xff0c;及时采集安全生产管理中的各种要素和数据&#xff0c;并进行统计分析&#xff0c;随后将分析结果及时反馈&#xff0c;以实现对安全生产管理的指导和帮助&#xff0c;旨在提高安全生产管理的效能。 在提升安全生产管理水平方…

达摩研究院Paraformer语音识别-中文-通用-16k

原文&#xff1a;https://github.com/alibaba-damo-academy/FunASR/blob/main/runtime/readme_cn.md FunASR软件包路线图 English Version&#xff08;docs&#xff09; FunASR是由阿里巴巴通义实验室语音团队开源的一款语音识别基础框架&#xff0c;集成了语音端点检测、语…

AI编程可视化Java项目拆解第二弹,AI辅助生成方法流程图

之前分享过一篇使用 AI 可视化 Java 项目的文章&#xff0c;同步在 AI 破局星球、知乎、掘金等地方都分享了。 原文在这里AI 编程&#xff1a;可视化 Java 项目 有很多人感兴趣&#xff0c;我打算写一个系列文章拆解这个项目&#xff0c;大家多多点赞支持~ 今天分享的是第二…

鸿蒙开发-UI-布局-层叠布局

鸿蒙开发-UI-布局 鸿蒙开发-UI-布局-线性布局 文章目录 前言 一、基本概念 二、对齐方式 三、Z序控制 四、使用场景 总结 前言 上文详细学习了线性布局&#xff0c;学习了线性容器内子元素在主轴以及交叉轴上的排列方式&#xff0c;子元素自适应相关的知识点&#xff0c;本文继…

旧路由重置新路由设置新路由设置教程|适用于自动获取IP模式

前言 如果你的光猫是直接拨号&#xff08;路由模式&#xff09;的&#xff0c;就可以按照本教程进行路由重置或者更换新路由器。 本文章适合电脑小白&#xff0c;请注意每一步哦&#xff01; 注意事项 开始之前需要确认光猫是桥接模式还是路由模式。如果光猫是路由模式&…

揭秘高生产力设计工具!15款原型设计软件推荐大公开!

1、Proto.io Proto.io是一个特殊的手机原型开发平台——可以构建和部署全交互式移动程序的原型&#xff0c;并可以模拟类似的成品。它可以在大多数浏览器中运行&#xff0c;并提供三个重要的界面&#xff1a;dashboard、编辑器和播放器。 dashboard可以用来管理项目。编辑器是…

第二证券:利空因素影响成本端 豆粕期现价偏弱运行

上个买卖周&#xff0c;受利空要素影响&#xff0c;内盘豆粕期价刷新2021年12月14日以来收盘价新低。到上周五收盘&#xff0c;豆粕主力合约MO2405最低下探至3075元/吨&#xff0c;收报3078元/吨&#xff0c;周内累计跌幅近4%。业内人士以为&#xff0c;美国农业部超预期调高20…

恐龙岛如何正确的选择服务器

恐龙岛服务器的价格因配置和运营模式等因素而异。一般来说&#xff0c;BGP线路成本更高但更稳定&#xff0c;适用于全球分布广泛的玩家&#xff0c;适合高品质画面游戏。在选择合适的配置时&#xff0c;需要考虑运营模式、游戏玩家地区分布和游戏特性等因素。具体价格需要参考具…

外汇天眼:做交易要不要预测行情? 趋势交易最重要的三个核心概念!

对一个&#xff08;量化&#xff09;技术分析派来说&#xff0c;趋势是非常重要的&#xff0c;大家一般的想法都是通过趋势跟踪来挣钱的&#xff0c;无趋势时会有小的损耗&#xff0c;趋势来时用仓位来弥补损失并盈利&#xff0c;用盈亏比而不用胜率。 就趋势交易最重要的三个…

3D scanner with DLPC3478

https://www.bilibili.com/video/BV1vJ411J7ih?p3&vd_source109fb20ee1f39e5212cd7a443a0286c5 因数&#xff1a; 分别率波长pattern速度 DMD 与 DLPC匹配 3D scanner是结构光的概念走的 Internal pattern, 是DLPC内部提供图像给DMD External Pattern, 外部FPGA /MCU…

Spring基于AOP(面向切面编程)开发

概述 AOP为Aspect Oriented Programming的缩写&#xff0c;意为&#xff1a;面向切面编程&#xff0c;通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续&#xff0c;是软件开发中的一个热点&#xff0c;也是Spring框架中的一个重要内容&…

鸿蒙开发之手势Pan

Entry Component struct OfficialPanGesturePage {State message: string 默认只左右移动State offsetX: number 0State offsetY: number 0State positionX: number 0State positionY: number 0//默认pan的参数&#xff0c;1根手指&#xff0c;左右方向private panOption:…

Audio Precision SYS-2722音频分析仪

181/2461/8938产品概述&#xff1a; 2700系列专为需要最高性能的音频工程师而设计&#xff0c; 最低的失真和最大的灵活性。 2722的真正双域架构实现了以下方面的无与伦比的测量 模拟和数字信号:模拟发生器和分析仪性能超过 任何基于数字转换器的设计&#xff0c;而数字分析技…

三、基础篇 vue Class与Style绑定

操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是 attribute&#xff0c;所以我们可以用 v-bind 处理它们&#xff1a;只需要通过表达式计算出字符串结果即可。不过&#xff0c;字符串拼接麻烦且易错。因此&#xff0c;在将 v-bind 用于 class 和 style…

【面试突击】计算级网络面试实战(上)

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理…