8

只要输入类型=文本,我的代码就可以使用此插件正常工作,但我想使用类型=数字,以便在移动设备上显示正确的键盘。

有没有办法做到这一点,希望有一些我在文档中遗漏的设置?

这是我的html:

<input id="Price" name="Price" type="number" placeholder="0.00" tabindex="3"/>

这是我的js:

$(document).ready(function(){
    $('#Price').inputmask("[9][9]9.99", {
        numericInput: true,
        "placeholder": "0",
        showMaskOnHover: false,
        greedy: false
    });
});
4

3 回答 3

7

jQuery Inputmask 插件 ( http://plugins.jquery.com/jquery.inputmask/ ) 使用setSelectionRange, selectionStart, selectionEnd(在https://github.com/RobinHerbots/jquery.inputmask/blob/3.x/js/jquery.inputmask -multi.js)。这些属性/方法在 更新以符合 W3C 更改时已被删除到Chrome<input type="number"/>中的字段上。

如果您认为 W3C 更改以删除数字字段上的这些功能是错误的,请投票给Bugzilla 错误 #24796

一些技巧可以解决此问题,或者您可能需要使用<input type="text">

于 2014-07-25T14:22:12.410 回答
6

我发现 using<input type="tel" />允许在手机上输入数字,并且还允许所有相同的事件触发为type="text"

似乎与大多数现代浏览器兼容,并回退到

不支持这些类型的浏览器将回退到使用“文本”类型。

http://www.caniuse.com/#search=tel

希望这对其他人有帮助。

于 2017-05-11T15:30:03.223 回答
2

我的解决方案是在 input type="text" 中添加 pattern="[0-9]*",或者如果它不起作用,请使用 input type="tel" - 允许在手机上输入数字

于 2017-11-08T01:44:36.743 回答