【问题标题】:Optional character in input mask输入掩码中的可选字符
【发布时间】:2012-03-03 01:31:35
【问题描述】:

如何在输入掩码中指定可选字符?

我找到了这个屏蔽输入插件http://digitalbush.com/projects/masked-input-plugin/ 和这些屏蔽定义。

$.mask.definitions['g']="[ ]";
$.mask.definitions['h']="[aApP]";
$.mask.definitions['i']="[mM]";
$.mask.definitions['2']="[0-1]";
$.mask.definitions['6']="[0-5]";
new_mask = "29:69";
$("#txtTime").mask(new_mask);

这定义了 12 小时时间格式的输入掩码,例如11:00。我想允许用户只为“小时”指定一位数字。用户不必输入 01:00,而应该能够输入 1:00。我该怎么做?

【问题讨论】:

    标签: javascript jquery input mask


    【解决方案1】:

    您需要将? 用于可选字符,因此在您的情况下,您应该使用“2?9:69”。

    【讨论】:

    • 但这仍然不允许用户为一小时指定一个字符。当我点击输入字段时,掩码会为缺少的小时数字添加分钟。
    • 很好,这似乎是插件中的一个错误。不幸的是,除非您修改插件本身,否则我不知道有什么好的解决方案。
    【解决方案2】:

    您在问题中链接到的the page 的引用和示例:

    你可以让你的面具的一部分是可选的。 “?”之后列出的任何内容 掩码内被认为是可选的用户输入。常见的例子 因为这是电话号码 + 可选分机号。

    jQuery(function($){
       $("#phone").mask("(999) 999-9999? x99999");
    });
    

    【讨论】:

      【解决方案3】:

      您可以使用$.mask.definitions['g']="[0-9 ]";

      【讨论】:

        【解决方案4】:

        我有一个类似的问题,我正在尝试解决可变货币金额(0.00 美元 - 10000.00 美元)的问题,但我不太了解插件的工作原理。

        一方面,$.mask.definitions['symbol'] = '???' 位看起来像是在使用正则表达式片段,基于 API 参考中的示例,并且在源代码中的这部分在mask 函数的代码中得到了一定程度的证实:

        $.each(mask.split(""), function (i, c) {
            if (c == '?') {
                len--;
                partialPosition = i;
            } else if (defs[c]) {
                tests.push(new RegExp(defs[c]));
                if (firstNonMaskPos == null)
                    firstNonMaskPos = tests.length - 1;
            } else {
                tests.push(null);
            }
        });
        

        ...另一方面,[]|[0-9] 的掩码定义不起作用(我正在尝试为那些不懂正则表达式的人做空字符串或 0-9。)作为参考,我正在尝试构建一个满足 0.00-10000.00 条件的掩码,例如 oooo9.99,其中 o[]|[0-9]

        由于代码确认这是基于正则表达式,所以 null 或 range 模式应该可以工作,但不是;这是掩码框架中一个更模糊的错误。除非是试图做错事的人,这也是可能的......

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-02-16
          • 2012-10-25
          • 1970-01-01
          • 1970-01-01
          • 2023-03-11
          • 2020-11-14
          相关资源
          最近更新 更多