如何在一个输入字段中同时输入数字和密码类型?

时间:2019-06-20 19:53:00

标签: javascript html css

我正在尝试创建一个输入字段以输入大头针。在移动设备中,我希望不要以纯文本形式(例如密码输入字段)显示大头针。我在stackoverflow中找到了这个建议,但到目前为止没有一个有效

<input type="password" name="PIN" pattern="[0-9]*" inputmode="numeric" style="-webkit-text-security: disc;" required>

有没有办法做到这一点?

4 个答案:

答案 0 :(得分:2)

您可以为此使用CSS

#password{
  -webkit-text-security: disc;
    -moz-text-security:circle;
     text-security:circle;
}
input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button { 
  -webkit-appearance: none; 
  margin: 0; 
}  
<input type="number" id="password" pattern="[0-9]*" >

您可以使用最简单的CSS方式来实现 希望对您有帮助:)

答案 1 :(得分:1)

尝试将type="password"更改为type="number"。我相信密码输入类型会阻止移动设备上的数字键盘。这仍然仅适用于Webkit浏览器,但目前大部分移动浏览器中都使用了webkit。

<input type="number" pattern="[0-9]*" inputmode="numeric" style="-webkit-text-security:disc;">

除此之外,没有确保在不使用JavaScript的情况下在移动设备上输入密码和数字输入的方法。

答案 2 :(得分:0)

我建议您使用javascript

let mobileInput  = document.getElementById('mobile');

mobileInput.oninput = function(){
  // if empty
	if(!this.value) return;

	// if non numeric
	let isNum = this.value[this.value.length - 1].match(/[0-9]/g);
	if(!isNum) this.value = this.value.substring(0, this.value.length - 1);
}
<input id="mobile" type="password">

答案 3 :(得分:0)

此选项将仅显示数字键盘和过滤器数字。

<input inputmode="numeric" type="password" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');" />