uniapp自定义输入框,实现验证码输入框、密码输入框、兼容微信小程序

这篇具有很好参考价值的文章主要介绍了uniapp自定义输入框,实现验证码输入框、密码输入框、兼容微信小程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

在移动端或者小程序项目中,验证码输入框、密码输入框也是很常见的,今天我们就来实现一个这样的效果。

图片展示
uniapp自定义输入框,实现验证码输入框、密码输入框、兼容微信小程序

代码实现

我这里是用uniapp实现的可兼容微信小程序。
大家如果需要微信小程序也可以参考此案例,实现思路都是一样的。

<template>
	<view class="index">
		<view class="content">
			<view class="phone-item">
				<!-- 手机号输入框 -->
				<input type="number" class="phone-input" v-model="phone" placeholder="请输入手机号">
				<!-- 发送验证码按钮 -->
				<view class="get-code" @click="getCode" v-if="codeBtn.isCode || codeBtn.codeNumber == 0">{{codeBtn.codeName}}
				</view>
				<view class="get-code" v-else>{{codeBtn.codeNumber}}s</view>
			</view>
			<view class="input-list">
				<!-- input输入框 -->
				<input class="input-item" v-if="focus" adjust-position="false" auto-blur="true" @blur="inputCodeBlur"
					@input="inputCode" :focus="focus" v-model="code" @focus="inputFocus" type="number" oneTimeCode
					maxlength="6" />
				<!-- 验证码输入框 -->
				<view class="code-list" @click="focusClick">
					<view class="code-item" v-for="(item,index) in 6" :key="index"
						:style="(index == code.length && focus ? 'border-color:#3c9cff;':'')">{{code[index]}}</view>
				</view>
			</view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				phone: '', // 手机号
				timer: null, // 定时器
				codeBtn: { // 按钮状态切换
					codeName: '获取验证码', // 状态名称
					codeNumber: 2, // 倒计时秒数
					isCode: true // 是否获取验证码
				},
				code: '', // 验证码字段
				focus: false, // input是否聚焦
			}
		},
		watch: {
			// 监听倒计时
			'codeBtn.codeNumber': {
				handler(val) {
					// 这里监听用户输入完完整的验证码,去调接口验证。
					if (val == 0) {
						this.codeBtn.codeName = '重新获取'
						clearInterval(this.timer)
					}
				}
			}
		},
		methods: {
			// 获取验证码
			getCode() {
				this.codeBtn.isCode = false
				this.codeBtn.codeNumber = 2
				this.timer = setInterval(() => {
					if (this.codeBtn.codeNumber == 0) {
						clearInterval(this.timer)
						return
					}
					this.codeBtn.codeNumber--
				}, 1000)
			},
			// 点击聚焦输入框
			focusClick() {
				this.focus = true
			},
			// 输入框失去焦点
			inputCodeBlur(e) {
				let value = e.detail.value
				this.focus = false
			},
			// 输入框聚焦时触发(没用到)
			inputFocus(e, height) {
				console.log(e)
			},
			// 输入框内容变化事件
			inputCode(e) {
				let value = e.detail.value
				this.code = value
			},
		}
	}
</script>
<style lang="scss" scoped>
	.index {
		padding: 30rpx;

		.content {
			padding: 20rpx;

			.phone-item {
				display: flex;
				justify-content: space-between;
				align-items: center;
				margin-bottom: 30rpx;

				.phone-input {
					width: calc(100% - 240rpx);
					padding: 16rpx;
					border-bottom: 1rpx solid #eee;
				}

				.get-code {
					text-align: center;
					width: 170rpx;
					font-size: 26rpx;
					border-radius: 50rpx;
					padding: 10rpx 0rpx;
					background: #3c9cff;
					color: #fff;
				}
			}

			.input-list {
				display: flex;
				align-items: center;

				.input-item {
					width: 0rpx;
				}

				.code-list {
					width: 100%;
					display: flex;
					align-items: center;
					justify-content: space-between;

					.code-item {
						width: 80rpx;
						height: 80rpx;
						text-align: center;
						line-height: 80rpx;
						border: 1rpx solid #eee;
						border-radius: 10rpx;
					}
				}
			}
		}
	}
</style>

总结

这里遇到一个小小的坑
如果大家在微信小程序真机预览的时候,输入值时并未改变视图,建议大家看一下自己的真机调试时的版本,改为 2.0 即可
具体可看这篇文章:微信小程序真机调试@input不生效文章来源地址https://www.toymoban.com/news/detail-449964.html

到了这里,关于uniapp自定义输入框,实现验证码输入框、密码输入框、兼容微信小程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp 微信小程序 自定义弹框+picker下拉选择列表+输入表单:拒绝-选择理由弹窗

    效果: 1、template 2、data: 3、methods: 4、style

    2024年01月20日
    浏览(63)
  • uni-app实现自定义导航栏,兼容H5、App、微信小程序

    很多情况下,系统自带的导航栏无法满足UI设计的要求,这时候就需要我们自定义导航栏来实现需求,要考虑跨端的多种情况,这里我们封装成一个组件来使用,实现效果如下: 一、H5、App、微信小程序的区别 1.H5:导航栏高度可以设为44px,它没有状态栏,因为H5端运行在浏览

    2024年04月13日
    浏览(76)
  • 微信小程序实现车牌号输入自定义键盘

    实现输入车牌号功能,I是在车牌号里不能输入得,在键盘上就没有展示,O是只在第二位上可以输入, wxml wxss js data键盘信息是写死得 addCarNumber 是保存接口了 h5 版的

    2024年04月27日
    浏览(64)
  • uniapp开发微信小程序,使用微信同声传译插件,实现语音识别输入文本

    第一步:现在微信小程序管理后台:“设置”-》“第三方设置”-》“插件管理”中添加插件。 但是这个地方,没有搜索到插件,就到微信服务市场去搜微信服务市场  搜索到以后添加到需要的小程序里面,然后返回管理中心查看,就可以看到了 第二步:在配置文件中引入插

    2024年02月09日
    浏览(70)
  • uniapp微信小程序兼容性问题记录(持续记录)

    “vue”: { “version”: “2.6.14” } “uview-ui”: { “version”: “1.8.7” }, 用如上方式在H5端运行时没有问题的,但在微信小程序端就找不到组件,所以修改为全部在main.js中引入 官方解释如下 https://ask.dcloud.net.cn/question/145410 H5端运行效果 微信小程序端运行效果 一开始以为:style没

    2024年02月09日
    浏览(52)
  • uniapp编译成微信小程序中遇到的兼容性问题

    模板里面如果存在这样的语法,则会报错Bad value with message;然而||\\\'\\\'和||[]则不会报错;如下所示; 解决方法:建议java后端加个拦截器统一处理下null 建议使用计算属性来访问全局变量; 原因: 排查循环依赖的问题 ,如下注释的代码即为循环依赖 uni.scss文件一定不能引用过多的样

    2024年02月07日
    浏览(66)
  • 【uniapp】使用canvas组件编译到微信小程序兼容出错问题

    使用uniapp编译跨平台项目会遇到不少兼容问题,这里主要讲canvas组件的,编译到微信小程序会有兼容出错问题,这里给讲一下解决方案,希望有帮助。 如果使用 CanvasContext 绘制,以下代码,编译到微信小程序上可能发现绘制不出来 看canvas组件的属性 type=\\\"2d\\\" 是否有加,要去掉

    2024年02月02日
    浏览(165)
  • 在微信小程序中或UniApp中自定义tabbar实现毛玻璃高斯模糊效果

    backdrop-filter: blur(10px); 这一行代码表示将背景进行模糊处理,模糊程度为10像素。这会导致背景内容在这个元素后面呈现模糊效果。 background-color: rgb(255 255 255 / .32); 这一行代码表示设置元素的背景颜色为白色(RGB值为0, 0, 0),并且通过/符号后面的透明度值(32%不透明度)使背

    2024年04月09日
    浏览(50)
  • 【uniapp】将微信小程序的代码兼容支付宝小程序(持续更新)

    目前本身就有一套完善的微信小程序(兼容h5)的代码,现在的需求是将它编译成支付宝小程序,做好兼容的处理,以便后续接入支付宝服务商,在这里简单记录一下目前发现的把微信小程序编译成支付宝小程序的问题和解决方案。 建议配合其他人的记录一起看,这里只是我

    2024年02月09日
    浏览(156)
  • uniapp多行文本展开或收起(兼容h5、微信小程序,其它未测试)

    文本过短时隐藏按钮,需要知道文本全部展示的行数 文本收起时,微信小程序不能直接获取文本展示的高度 文本展示时,微信小程序不能直接获取文本收起的高度 所以使用 占位文本 获取单行文本高度,最终通过计算得到文本全部展示时的行数 本文介绍的方法兼容h5、微信

    2024年02月02日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包