十进制掩蔽

时间:2012-12-17 20:51:26

标签: jquery mask

我正在使用jQuery masked input plugin

我需要为百分比的十进制数定义一个掩码,以便所有后面的都是有效的输入 -

  • 1
  • 10
  • 1.1
  • 1.10
  • 10.1
  • 10.10
  • 99.99
  • 100

百分比不能大于100,因此100.00有效但100.01不有效。

$("#" + enum.WomenInSororitiesId).mask("9?9.99"); //valid till 99.99

使用上面的代码,我得到至少一个数字,但是对于带有十进制的1-9,用户需要输入它作为01.00或02.00。

如何重新设计这个面具,以便它可以适用于上述情况?

感谢。

3 个答案:

答案 0 :(得分:1)

无法使用屏蔽输入插件。

您可以使用验证功能验证带有小数位的百分比字段,如此问题的一些答案中所述:

Validating a text field containing a float is a valid percentage value?

答案 1 :(得分:0)

这不是一个答案,但似乎没有。作为一个安慰奖,这里有一个小代码来测试你的价值,以确保它是数字和< 100。

$("#" + enum.WomenInSororitiesId).change(function () {
    val = $(this).val();
    if(!$.isNumeric(val) || val-0 > 100) {
        alert("Something went horribly, horribly wrong.");
    }
});

答案 2 :(得分:0)

这可以通过声明允许字符为小数点或数字的自定义屏蔽定义来完成。例如:

$.mask.definitions['~']='[0-9|.]';
$("input.abcd").mask("9?~9");  

这说:

  • 第一个字符必须是数字
  • 后续字符是可选的
  • 第二个字符可以是[0-9]或。
  • 第三个字符可以是[0-9]但不是。 (这可以防止奇怪的输入,如“5.2。”)

此方法的一个缺点是,如果您使用以下掩码:

$.mask.definitions['~']='[0-9|.]';
$("input.abcd").mask("9?~~~9");  

然后像“5 ... 2”这样的输入有效。