2

我正在使用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 

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

4

2 回答 2

5

尝试使用可选的参数greedy,例如,

$('#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
        }
    });
});

演示

或者简单地使用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" />

于 2014-08-27T11:58:00.940 回答
1

您是否尝试过使用多个口罩?

$('#from_id').inputmask({'mask':["9{0,5}.9{0,2}", "999"]});
于 2014-09-14T18:02:28.050 回答