jQuery 输入掩码小数点
Posted
技术标签:
【中文标题】jQuery 输入掩码小数点【英文标题】:jQuery Input Mask Decimal point 【发布时间】:2014-10-20 23:53:51 【问题描述】:我正在使用https://github.com/RobinHerbots/jquery.inputmask 的 jQuery 插件,但我似乎无法导出对应于整数和小数的模式。例如,
我需要以下内容才有效:
10
150
12.25
0.45
目前我正在做的事情:
$('#from_id').inputmask("90,5.90,2");
但这意味着如果用户不指定小数点后的内容,则结果输出为:
例如,如果用户只想输入12(并且他没有指定小数点)输出是
12___.__
(因为掩码在等待小数点)
但如果用户指定小数点,例如 12.00,输出就可以了:
12.00
有人可以帮我解决这个问题吗?
【问题讨论】:
【参考方案1】:尝试使用可选参数greedy
like,
$('#from_id').inputmask('mask':"90,5.90,2", greedy: false);
阅读optional-masks-with-greedy-false
您可以验证上述掩码。或者使用你自己的逻辑来验证,
$(function()
$('#id').on('keyup', function(e)
if (!this.value.match(/^\d0,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(/^\d0,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)。清楚吗? 如果末尾的.
让您感到困扰,您可以将整个部分设为可选"90,5[.90,2]"
【参考方案2】:
您是否尝试过使用多个掩码?
$('#from_id').inputmask('mask':["90,5.90,2", "999"]);
【讨论】:
以上是关于jQuery 输入掩码小数点的主要内容,如果未能解决你的问题,请参考以下文章