1

我正在使用jQuery 屏蔽输入插件

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

  • 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。

我怎样才能返工这个面具,以便它可以在上述情况下工作?

谢谢。

4

3 回答 3

1

无法为此使用屏蔽输入插件。

您可以使用验证函数来验证带有小数位的百分比字段,如该问题的许多答案中所述:

验证包含浮点数的文本字段是有效的百分比值吗?

于 2012-12-17T21:52:05.167 回答
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”这样的输入是有效的。

于 2013-04-22T20:20:35.140 回答
0

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

$("#" + enum.WomenInSororitiesId).change(function () {
    val = $(this).val();
    if(!$.isNumeric(val) || val-0 > 100) {
        alert("Something went horribly, horribly wrong.");
    }
});
于 2012-12-17T20:59:25.347 回答