vue基于input实现密码的显示与隐藏功能
作者:水星记_ 发布时间:2024-05-09 15:28:20
前言
大家都知道,一般情况下,输入框的密码我们是看不到密码的,只有当我们点击查看密码的小图标时,密码才会显现出来,实现起来也非常简单,通过点击图标让input的type属性变化即可。但是隐藏的密码一般是
"•"
展示,那我们想要用"*"
或者其他的符号显示该怎么办呢,今天就教大家用其他的符号代替"•"
在密码隐藏时展示。
实现效果
实现思路
1.首先我们要先在data中定义一个变量用来控制小图标的显示与隐藏;
2.在页面中循环遍历data中的privates(密钥内容),拿到字符串的长度length;
3.拿到密钥的长度后,先把它分割成字符串数组,用于后面插入;
4.然后通过splice方法插入到字符串数组中,splice有三个参数,第一个参数是必要的,是插入元素的位置,第二个参数的意思是要插入的元素数量,第三个参数的意思是要插入的元素是什么;
5.最后我们将字符串数组通过join方法转换成字符串即可。
话不多说,直接上实例代码
<template>
<div class="private">
<!--// 显示内容: ==0时显示*,==1时显示密钥内容 -->
<span v-if="codeType == 1">{{privates}}</span>
<span class="special" v-if="codeType == 0">{{star}}</span>
<!--// 小图标: ==0时展示隐藏图标,==1时展示显示图标-->
<span v-if="codeType == 1"><img @click="reveal" src="https://s4.ax1x.com/2022/01/07/79E7dg.png"></span>
<span v-if="codeType == 0"><img @click="conceal" src="https://s4.ax1x.com/2022/01/07/79EOWn.png"></span>
</div>
</template>
<script>
export default {
data() {
return {
privates: "123456789123456789123456789", //密钥内容
codeType: 0, //控制密钥显示隐藏 等于1时显示,等于0时隐藏
star: "", //要插入的星星*
}
},
mounted() {
// 循环遍历拿到密钥的长度
for (var i = 0; i < this.privates.length; i++) {
let star = this.star.split('') //分割成字符串数组
star.splice(this.privates.length, this.privates.length, '*') //添加到数组
this.star = star.join('') //将数组转换为字符串
}
},
methods: {
//显示事件
reveal() {
this.codeType = 0
},
//隐藏事件
conceal() {
this.codeType = 1
},
}
}
</script>
<style scoped>
.private {
display: flex;
align-items: center;
}
.private img {
width: 20px;
height: 20px;
vertical-align: middle;
cursor: pointer;
margin-left: 9px;
}
.special {
position: relative;
top: 4px;
}
</style>
至此这个小功能就实现啦!
补充:vue 如何实现切换密码的显示与隐藏
一、vue 实现切换密码的显示与隐藏
1.在 data
中定义 showPwd
,默认为 false
,用来控制密码的显示与隐藏。定义 pwd
,默认为空,是密码的值,代码如下所示:
data() {
return {
showPwd: false,
pwd: ''
}
}
2.在密码的显示与隐藏中,有两种输入框,一个是类型为text
的文本框用来展示密码,另一个是类型为password
的密码框用来隐藏密码。由于showPwd
的默认值为false
,所示设置text
的框为v-if
,默认显示密码,而设置password
的框为 v-else
,默认不显示密码,同时也进行v-model
的双向数据绑定,绑定pwd
的值,代码如下所示:
<input type="text" maxlength="8" placeholder="密码" v-if="showPwd" v-model="pwd">
<input type="password" maxlength="8" placeholder="密码" v-else v-model="pwd">
3.在旁边控制的按钮上,进行对象样式绑定,显示不同的样式,同时绑定点击事件,将 !showPwd
的值赋值给 showPwd
。在下面的显示中,通过 showPwd
值的不同显示不同的文本,代码如下所示:
<div class="switch_button off" :class="showPwd?'on' : 'off'" @click="showPwd=!showPwd">
<div class="switch_circle" :class="{right: showPwd}"></div>
<span class="switch_text">{{ showPwd ? 'abc' : '...'}}</span>
</div>
来源:https://blog.csdn.net/Shids_/article/details/122368025


猜你喜欢
- 自己在刚学习python时写的,中途遇到很多问题,查了很多资料,下面就是我爬取租房信息的代码:链家的房租网站两个导入的包1.requests
- 原文: gradio.app/interface-s…1.全局状态例子来解释import gradio as grsc
- PHP session用法其实很简单它可以把用户提交的数据以全局变量形式保存在一个session中并且会生成一个唯一的session_id,
- 错误信息Attempting to use uninitialized value input_producer/input_produce
- 基本用法?在大型项目中,我们可能需要拆分应用为更小的块,并仅在需要时再从服务器加载相关组件。Vue 提供了defineAsyncCompon
- 最近在做移动端项目时,需要实现一个列表页面的每一项item向左滑动时出现相应的删除按钮,本来想着直接使用zepto的touch.js插件,因
- 用SHOW显示已有的数据库句法:SHOW DATABASES [LIKE wild]如果使用LIKE wild部分,wild字符串可以是一个
- OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特
- 1.找到配置文件-打开“开始菜单--Anaconda3文件夹--Anaconda Prompt”-输入命令: jupyter noteboo
- list count统计个数实现在python数组中统计某个数字出现的次数。。。。。count_num = 3lst = [1,2,3,4,
- 本文主要介绍一下在学习可视化过程里遇到的一些情况比如cmap=plt.cm.Blues的映射import matplotlib.pyplot
- 最近经常使用字符串查找功能。 包括 1、全匹配查找字符串 2、模糊查找字符串 CHARINDEX 和 PATINDEX 函数都返回指定模式的
- 最近发现数据库服务器压力很大,CPU经常达到100%。查看进程,发现有大量的sp_cursorclose;1进程信息。网上查了下,出现sp_
- 插入视图的条件: 1.如果视图是基于一个基础表产生的,那么这就称为非连接视图,所有的非连接视图都是可以更新的,也就是说可以在该视图上进行,I
- 本文实例为大家分享了python+logging+yaml实现日志分割的具体代码,供大家参考,具体内容如下1、建立log.yaml文件ver
- 背景接口域名没有写死,而是动态获取。具体实现就是 通过读取一个静态json文件,来设置真实的接口域名。好处是原域名有可能被封,这样可以直接后
- 没错,全网最帅的比卡丘在我这~~~为了访问 Python 库,您需要将它导入到您的 Python 环境中,使用以下命令将其导入 turtle
- 开始制作符合标准的站点,第一件事情就是声明符合自己需要的DOCTYPE。查看本站首页原代码,可以看到第一行就是:<!DOCTYPE h
- 使用socket实现tcp通信,需导入socket模块1、服务端主要步骤:(1)创建socket:socket.socket(family=
- 本文实例讲述了Python创建xml的方法。分享给大家供大家参考。具体实现方法如下:from xml.dom.minidom import