微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何使输入type =“tel”工作为type =“password”

当将输入标签用作type =“tel”时,触摸设备上的键盘与输入框的类型相对应.但是,我希望保留输入标签中的值(与密码类型一样).
正常的行为是让用户在打字时隐藏每个角色.
<input type="tel">
input [type="tel"] {
    -webkit-text-security: disc;
}

解决方案适用于大多数浏览器,但不适用于IE.

<input type="password" pattern="[0-9]*" inputmode="numeric">

解决方案无法正常工作.

有没有办法完成我想要做的事情?

解决方法

我知道这已经有一个很好的,工作和接受的解决方案从jdgregson,但我真的很喜欢rybo111的基于自定义字体的解决方案的想法,并想试一试.

这个想法是创建一个只包含圆形的字体,以便当字体系列应用于输入元素时,似乎没有显示任何字符.

因此,如果任何人仍然对decent browser support的非JS解决方案感兴趣,并且没有jdgregson答案的已知问题,我为此创建了一个简单的字体.

GitHub回购:https://github.com/noppa/text-security

JSfiddle演示:https://jsfiddle.net/449Lamue/6/

可以通过将来自克隆的repo或RawGit或类似的东西包含在dist / text-security.css中来使用该字体.包含css后,您可以通过将元素的font-family设置为“text-security-disc”来使用该字体.

<link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/noppa/text-security/master/dist/text-security.css">
<style>
     input [type="tel"] {
         font-family: "text-security-disc";
         -webkit-text-security: disc;
     }
</style>

本着“polyfilling”的-webkit-text-security的精神,我还添加了“circle”和“square”选项作为隐藏符号.

我已经使用Chrome v49,IE11,Microsoft Edge 25和Android 5.0上的Chrome v50进行了测试,其中“tel”类型的输入打开数字键盘.

原文地址:https://www.jb51.cc/js/152821.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐