禁用input自动补全,模拟type=password输入字符显示为星号
最近遇到一个想禁用浏览器的密码自动补全的功能,翻遍了整个技术论坛大多使用用auto-complete="new-password"但是本人测试不怎么管用,所有又找到了如下几种方法,特此记录
一、使用span 替换输入内容
根据该地址input密码框输入后设置显示为星号或其他样式 做了一个模拟,
核心片段如下:
<template>
<div class="text-input" :class="right ? 'textinput-right' : ''">
<span
v-if="star"
class="pwd-txt"
:style="right ? { paddingRight: '5px' } : { paddingLeft: '5px' }"
>
{{ passwordType === 'password' ? '*'.repeat(text.length) : text }}
</span>
<input
ref="inputText"
v-model="value"
:style="[
star ? '' : { paddingLeft: '5px' },
right ? { textAlign: 'right' } : ''
]"
:class="['text', className]"
:type="type === 'number' ? 'tel' : 'text'"
:placeholder="text ? '' : placeholder"
:maxlength="maxlength"
@keyup="handelKeyup"
/>
<span v-show="text" class="show-pwd" @click="showPwd">
<svg-icon
:icon-class="passwordType === 'password' ? 'eye' : 'eye-open'"
/>
</span>
<el-button
class="my-btn"
icon="el-icon-unlock"
:loading="unlockLoading"
@click="unlock"
></el-button>
</div>
</template>

二、使用text-security:disc
后来又根据这个js禁止chrome保存密码、更新密码
将上面的案例修改如下:
<template>
<div class="text-input">
<input
v-model.trim="inputVal"
:class="['input-content', className]"
type="text"
:maxlength="maxlength"
:placeholder="placeholder"
oncontextmenu="return false"
onpaste="return false"
oncopy="return false"
oncut="return false"
auto-complete="off"
:style="
isPwd
? 'text-security:disc; -webkit-text-security:disc;ime-mode:disabled'
: ''
"
@keyup.enter.native="unlock"
/>
<span v-show="inputVal" class="show-pwd" @click="showPwd">
<svg-icon :icon-class="isPwd ? 'eye' : 'eye-open'" />
</span>
<el-button
class="my-btn"
icon="el-icon-unlock"
:loading="unlockLoading"
@click="unlock"
></el-button>
</div>
</template>

最大的问题就是目前只有webkit内核可以,没办法兼容其他浏览器
瞧firefox—>

三、使用font-family: text-security-disc
最后:再stackoverflow发现了这个帖子How to make input type=“tel” work as type=“password”从中发训了一个使用font-family: text-security-disc来达到效果

安装以上的text-security
npm i -S text-security
或者直接index.html引用
<link href="https://noppa.github.io/assets/text-security/text-security.css" rel="stylesheet" type="text/css">
最后又将上面片段改为:
<template>
<div class="text-input">
<input
v-model.trim="inputVal"
:class="['input-content', className, isPwd ? 'input-plugins' : '']"
type="text"
:maxlength="maxlength"
:placeholder="placeholder"
auto-complete="off"
@keyup.enter="unlock"
/>
<span v-show="inputVal" class="show-pwd" @click="showPwd">
<svg-icon :icon-class="isPwd ? 'eye' : 'eye-open'" />
</span>
<el-button
class="my-btn"
icon="el-icon-unlock"
:loading="unlockLoading"
@click="unlock"
></el-button>
</div>
</template>
最后整合上面几次修改,预览效果如下:

完整demo请移步https://github.com/dengxiaoning/similar-input-password
禁用input自动补全,模拟type=password输入字符显示为星号的更多相关文章
- ElasticSearch 实现分词全文检索 - 搜素关键字自动补全(Completion Suggest)
目录 ElasticSearch 实现分词全文检索 - 概述 ElasticSearch 实现分词全文检索 - ES.Kibana.IK安装 ElasticSearch 实现分词全文检索 - Rest ...
- vim自动补全
Vim 中使用 OmniComplete 为 C/C++ 自动补全 OmniComplete 并不是插件的名字,而是 Vim 众多补全方式中的一种(全能补全).说白了 OmniComplete 其实就 ...
- Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件
本文介绍如何设置Eclipse代码自动补全功能.轻松实现输入任意字母均可出现代码补全提示框. Eclipse代码自动补全功能默认只包括 点"." ,即只有输入”." ...
- Debian sudo自动补全
解决 debian sudo TAB 键不能自动补全命令的原因 一般情况,命令行输入 sudo apt-get ins 按 tab ,它后面会自动补全为 install 如果右面写了包的名的一部分,按 ...
- 转:Eclipse自动补全功能轻松设置
Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件 2012-03-08 21:29:02| 分类: Java | 标签:eclipse 自动补全 设置 |举报|字号 订阅 ...
- 给 zsh 自定义命令添加参数自动补全
有时我会自定义一些 zsh 命令,以便提升某些高频操作的效率.本文记录我给一个自定义命令添加参数自动补全的方法. 场景 我自定义了一个 zsh 命令 gmt,执行 gmt <b2>,可以将 ...
- jquery input 搜索自动补全、typeahead.js
最近做个一个功能需要用到自动补全,然后在网上找了很久,踩了各种的坑 最后用typeahead.js这个插件,经过自己的测试完美实现 使用方法:在页面中引入jquery.jquery.typeahead ...
- 知问前端——自动补全UI
自动补全(autocomplete),是一个可以减少用户输入完整信息的UI工具.一般在输入邮箱.搜索关键字等,然后提取出相应完整字符串供用户选择. 调用autocomplete()方法 var hos ...
- jquery 自动补全控件(支持IE6)待整理
自动补全控件(兼容IE6):http://bassistance.de/ download地址:http://jquery.bassistance.de/autocomplete/jquery.aut ...
- 仿Google首页搜索自动补全
仿Google自动补全,实现细节: 后台是简单的servlet(其实就是负责后台处理数据交互的,没必要非跌用个struts...什么的) 传输介质:xml 使用jQuery js框架 功能实现: 如果 ...
随机推荐
- Android笔记--如何在Android studio里面打开数据库
具体操作 可参考这篇(更为详细): https://www.cnblogs.com/liuzijin/p/17029231.html 1.找到界面内的Device File Explorer 这里找可 ...
- Spring--案例:测试业务层接口万次执行效率
案例来袭 这样,并不能够分辨出哪个的效率是哪个 可以利用pjp进行这样的操作: 结果:
- Axios的相关应用
Axios 的案例应用 要求利用axios实现之前利用AJAX实现的验证用户是否登录的案例 鉴于这两种语法的相似性,只需要在AJAX里面的注册界面里面的script标签里面包含的代码修改为如下代码即可 ...
- 使用containerd搭建MinIO集群服务
概述 因为在云服务器上默认只有一块磁盘,如果直接在系统盘上安装MinIO,会被拒绝,所以这里采用containerd的方式绕过这一限制 操作环境 操作系统 CentOS 7.9 MinIO版本 REL ...
- .Net7 CLR的调用函数和编译函数
前言 .Net运行模型,无非就两个过程.一个是调用入口函数,另外一个就是编译入口函数.前者主调用,后者主编译. 概括 一:入口函数:RunMainInternal 所有的.Net程序,包括控制台,We ...
- Jan Ozer:高清直播互动场景下的硬编码如何选型?
前言 高清直播逐渐普及,硬编码也成为大势所趋.在 RTE 2022 大会上,来自 NETINT 的 Jan Ozer 通过一系列的对比测试结果,详细分享了如何为高清直播互动场景进行硬编码的技术选型. ...
- SpringBoot——定制错误页面及原理
更多内容,前往 IT-BLOG 一.SpringBoot 默认的错误处理机制 [1]浏览器返回的默认错误页面如下: ☞ 浏览器发送请求的请求头信息如下:text/html 会在后面的源码分析中说到 ...
- 机器学习算法(二): 基于鸢尾花数据集的朴素贝叶斯(Naive Bayes)预测分类
机器学习算法(二): 基于鸢尾花数据集的朴素贝叶斯(Naive Bayes)预测分类 项目链接参考:https://www.heywhale.com/home/column/64141d6b1c8c8 ...
- redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to "xxxxx"
Java 连接 Redis所遇问题 1. 检查Linux是否关闭防火墙,或对外开放redis默认端口6379 关闭防火墙. systemctl stop firewalld 对外开放端口.firewa ...
- 写书写到一半,强迫症发作跑去给HotChocolate修bug
前言 这是写作<C#与.NET6 开发从入门到实践>时的小故事,作为本书正式上市的宣传,在此分享给大家. 正文 .NET目前有两个比较成熟的GraphQL框架,其中一个是HotChocol ...