【问题标题】:How can I define input mask for price with jquery input mask如何使用 jquery 输入掩码定义价格的输入掩码
【发布时间】:2019-06-12 11:49:15
【问题描述】:

我想允许用户输入 0 到 1000 之间的金额。他可以选择用美分输入金额。 我想允许的金额示例: 199.99, 29.90, 999.99, 0.01, 10, 999

我试过了,但它并没有真正起作用:

$('.input-price').mask('000.00', {reverse: true});

您还有其他可行的方法可以向我推荐吗?

【问题讨论】:

  • 默认 HTML5 支持 html 标签上的stepminmax 属性。但我会尝试在此处找出您的.mask() 电话有什么问题。您是否尝试过使用, 而不是. 作为浮点分隔符?您是否尝试过提供文档中描述的自定义翻译对象?像这样的东西就是为什么我在默认 HTML5 得到浏览器的足够支持后抛弃了 jquery。

标签: javascript jquery jquery-inputmask


【解决方案1】:

您可以使用9 占位符,这使得数字是可选的:

$('.input-price').mask('099.99');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.15/jquery.mask.js"></script>

<input type="text" class="input-price" placeholder="Enter price..." />

【讨论】:

    【解决方案2】:

    试试这个(JS)

        function isNumberDot(evt) {
            evt = (evt) ? evt : window.event;
            var charCode = (evt.which) ? evt.which : evt.keyCode;
            if (charCode > 31 && (charCode < 48 || charCode > 57)&& charCode != 46 && charCode != 127) {
                return false;
            }
            return true;
        }
    <input type="text" value="0.00"
        onKeyPress="return isNumberDot(event);"
        autocomplete="off"  onFocus="this.select();" onChange="if(this.value=='NaN' || this.value==''){this.value='0.00'};this.value=parseFloat(this.value).toFixed(2);"
        >

    【讨论】:

    • 好很多,但仍然允许用户输入像 99.99999 这样的数字
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 2020-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    相关资源
    最近更新 更多