【问题标题】:jQuery Input Mask Decimal pointjQuery 输入掩码小数点
【发布时间】:2014-10-20 23:53:51
【问题描述】:

我正在使用https://github.com/RobinHerbots/jquery.inputmask 的 jQuery 插件,但我似乎无法导出对应于整数和小数的模式。例如,

我需要以下内容才有效:

      10
      150
      12.25
      0.45

目前我正在做的事情:

$('#from_id').inputmask("9{0,5}.9{0,2}");

但这意味着如果用户不指定小数点后的内容,则结果输出为:

例如,如果用户只想输入12(并且他没有指定小数点)输出是

12___.__

(因为掩码在等待小数点)

但如果用户指定小数点,例如 12.00,输出就可以了:

12.00 

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: javascript jquery jquery-inputmask


    【解决方案1】:

    尝试使用可选参数greedy like,

    $('#from_id').inputmask({'mask':"9{0,5}.9{0,2}", greedy: false});
    

    阅读optional-masks-with-greedy-false

    您可以验证上述掩码。或者使用你自己的逻辑来验证,

    $(function(){
        $('#id').on('keyup', function(e) {
            if (!this.value.match(/^\d{0,5}(\.[0-9]{1,2})?$/)) {
                $(this).addClass('error');// adding error class
            } else {
                $(this).removeClass('error');// remove error class
            }
        });
    });
    

    Demo

    或者干脆用toggleClass点赞,

    $(function() {
      $('#id').on('keyup', function(e) {
        $(this).toggleClass('error', !this.value.match(/^\d{0,5}(\.[0-9]{1,2})?$/));
      });
    });
    .error {
      color: red;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <input id="id" />

    【讨论】:

    • 感谢您的回复,这几乎是我所需要的。但现在的问题是,如果用户在“。”之后没有提供任何内容,我会得到类似:12.(如果用户刚刚输入 12)。清楚吗?
    • 如果末尾的. 让您感到困扰,您可以将整个部分设为可选"9{0,5}[.9{0,2}]"
    【解决方案2】:

    您是否尝试过使用多个掩码?

    $('#from_id').inputmask({'mask':["9{0,5}.9{0,2}", "999"]});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2016-08-12
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      相关资源
      最近更新 更多