如何使输入字段类型既是数字又是密码? [复制]

Posted

技术标签:

【中文标题】如何使输入字段类型既是数字又是密码? [复制]【英文标题】:How to make input field type both numeric and password? [duplicate] 【发布时间】:2012-02-10 22:00:46 【问题描述】:

我知道这一点:

<input type="tel">

我知道这一点:

<input type="password">

但我想同时使用两者。我希望数字键盘出现在 ios 上(特别是),但在键入后隐藏每个字符。这样的事情可能吗?

<input type="tel|password">

【问题讨论】:

这应该是你的工作:***.com/a/8334379/947898. 【参考方案1】:

您可以输入类型密码,然后在按下提交按钮时使用 javascript 验证是否仅输入了数字。 http://www.configure-all.com/javascript_form_validation.php

【讨论】:

这也是我的答案,但似乎 OP 希望启用一些通常由type="tel" 触发的 iOS 特定 UI 功能。我不认为 JS 输入验证会对此有所帮助。 回答链接不再有效。什么是更新的链接来提供帮助?【参考方案2】:

输入框的html

<input type="tel" name="password" id="password" value="" placeholder="Enter password"
    onfocus="changeToPassword()">

Javascript:

// change the type of the input to password
function changeToPassword() 
    setTimeout(function () 
        document.getElementById("password").setAttribute("type", "password")
    , 500);

此解决方案适用于 iphone。这是一种黑客行为。在接下来的 500 毫秒内拥有数字键盘后,您将属性更改为密码,这会欺骗手机。

【讨论】:

这不会再次起作用。有人输入信息后模糊不清重新输入信息,现在类型已经设置为密码,数字小键盘就来不及了。【参考方案3】:

对于 iOS,您可以将输入设置为输入“密码”,并且仍然使用 HTML5 属性“模式”触发数字键盘:

<input type="password" pattern="[0-9]*" ... />

来自Apple-Documentation:

要显示数字键盘,请将模式属性的值设置为“[0-9]”或“\d”。

【讨论】:

这个答案被低估了,并且是完成所要求的更好的方法,特别是在 iOS 中。 不幸的是,它不适用于android 这在 iOS 中不起作用,至少在 iOS9 中不起作用。将类型设置为密码会使模式和输入模式属性无效。 我试过了,但也没用 pattern="[0-9]*" inputmode="numeric"

以上是关于如何使输入字段类型既是数字又是密码? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使输入文本字段用*替换任何字符? [复制]

如何使单个字段包含可单独排序的多条数据?

在 GraphQL 模式中,字段如何既是 GraphQLString 又是 GraphQLInt?

如何使日期输入字段的默认值成为普通文本? [复制]

NumPy 类型提示某事物既是数组又是 float32? [复制]

HTML/CSS:如何使“密码”输入显示密码?