jQuery输入掩码小数点

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

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

尝试使用可选的parmaneter greedy

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

阅读optional-masks-with-greedy-false

你可以validation上面的面具。 或使用您自己的logicavalidation,如,

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

你尝试过多个面具吗?

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