文本框只显示数字键盘和小数点

发布时间:2023-04-22 16:32:03    发布者:文昌文城莱奥网络技术工作室    浏览次数:318

HTML代码:

<input type="number" step="any" pattern="[0-9]*" inputmode="numeric" id="myInput">

JavaScript代码:

var myInput = document.getElementById("myInput");

// 监听focus事件,在获取焦点时设置inputmode为decimal
myInput.addEventListener("focus", function() {
    myInput.setAttribute("inputmode", "decimal");
});

// 监听blur事件,在失去焦点时设置inputmode为numeric
myInput.addEventListener("blur", function() {
    myInput.setAttribute("inputmode", "numeric");
});

上述代码主要依靠HTML5新增的inputmode属性实现了文本框只显示数字键盘和小数点的功能。在移动端,当该文本框被选中(获取焦点)时,inputmode被设置为decimal,此时弹出的键盘会包含数字键盘和小数点。当移动端的文本框失去焦点时,inputmode被设置为numeric,此时键盘会恢复为普通的数字键盘。此外,为了确保小数点可以正常工作,我们还需要在HTML标签的type属性加上number和step属性加上any的值,以及pattern属性加上正则表达式[0-9]*以让输入框只能接受数字。