是否有一种跨浏览器的一致方式来隐藏一些浏览器(如Chrome)为数字类型的HTML输入呈现的新旋转框?我正在寻找一个CSS或JavaScript方法,以防止向上/向下箭头出现。
<input id="test" type="number">
是否有一种跨浏览器的一致方式来隐藏一些浏览器(如Chrome)为数字类型的HTML输入呈现的新旋转框?我正在寻找一个CSS或JavaScript方法,以防止向上/向下箭头出现。
<input id="test" type="number">
当前回答
/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
/* Firefox */
input[type=number] {
-moz-appearance: textfield;
}
源
其他回答
也许当你不想要旋转器时,用javascript将数字输入更改为文本输入;
document.getElementById('myinput').type = 'text';
并停止用户输入文本;
document.getElementById('myinput').onkeydown = function(e) {
if(!((e.keyCode > 95 && e.keyCode < 106)
|| (e.keyCode > 47 && e.keyCode < 58)
|| e.keyCode == 8
|| e.keyCode == 9)) {
return false;
}
}
然后让javascript把它改回来,以防你确实想要一个旋转器;
document.getElementById('myinput').type = 'number';
这对我来说很有效
对我来说,在chrome上什么都没有工作,但显示:没有。
/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
display: none;
}
/* Firefox */
input[type=number] {
-moz-appearance: textfield;
}
感谢@philfreo在评论中指出这一点。
Firefox 29目前增加了对数字元素的支持,所以这里有一个代码片段,用于隐藏webkit和基于moz的浏览器中的旋转器:
输入(type =“数量”){ -moz-appearance:文本框; } 输入::-webkit-outer-spin-button, 输入:-webkit-inner-spin-button { -webkit-appearance:没有; } <input id="test" type="number">
/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
/* Firefox */
input[type=number] {
-moz-appearance: textfield;
}
源
根据苹果手机Safari的用户体验编码指南,你可以使用以下方法在iPhone浏览器中显示数字键盘:
<input type="text" pattern="[0-9]*" />
\d*的模式也可以。