【问题标题】:Gravity forms custom field mask - escaping a "9"重力形成自定义字段掩码 - 转义“9”
【发布时间】:2018-07-17 05:37:01
【问题描述】:

在整个 Wordpress 上使用 Gravity 表单时,我获得了积极的体验。但是,我正在向输入添加字段掩码并遇到一个小问题。

每个 16 位数的帐号都以 001191 开头,我们希望客户能够在此表单中输入他们的帐号(而不是与他们相关的少数其他识别号码之一!)。

所以,我将 (001191) 作为占位符和自定义掩码,如下所示:

0011919999999999

问题是,我想将前 9 个作为自定义掩码的一部分,但找不到成功逃避它的方法。

我已经尝试在它之前使用反斜杠,使用引号和双引号,但到目前为止没有任何乐趣。

请问有没有人遇到过类似的问题并找到了解决这个问题的好方法?

【问题讨论】:

    标签: wordpress forms field masking gravity


    【解决方案1】:

    Gravity Forms' 使用此脚本为我们的输入掩码提供动力(这将在未来的版本中更改;撰写本文时的版本是 GF2.3)。

    https://github.com/digitalBush/jquery.maskedinput

    您可以在表单中添加 HTML 字段并设置自定义定义,如下所示:

    <script>
    jQuery(function($){
       $.mask.definitions['~']='[9]';
    });
    </script>
    

    在此示例中,您将在输入掩码中使用“~”来表示文字 9

    编辑

    如果你想覆盖默认定义,这样的事情应该可以工作:

    <script>
    jQuery(function($){
       delete $.mask.definitions['9'];
       $.mask.definitions['n'] = '[0-9]';
    });
    </script>
    

    然后您可以在掩码中使用文字 9。第二行将 '9' 定义替换为 n,因此您可以在输入掩码中使用 n 来要求数字 0 - 9。

    编辑 II(2021 年 11 月 11 日)

    GF 2.5 引入了一些难以解决的事件顺序更改。现在最简单的方法是在覆盖预设定义后重新初始化您的蒙版。

    delete $.mask.definitions['9'];
    $.mask.definitions['n'] = '[0-9]';
    $( '#input_{formId}_{fieldId}' ).mask( 'nn-99-aaa' );
    

    肯定有办法避免这种情况,但我今天早上没有时间深入研究。 ?

    【讨论】:

    • 这很有效,大卫,非常感谢。这是非常字面的,有没有办法可以将其设置为硬 9 - 我的示例中的 0011 在用户单击以输入更多数字时以表单形式打印,而不是仅接受 9 的空格?例如应用您的解决方案后,表单现在包含 0011_1,我希望将其设为 001191,然后用户填写其余部分。希望这是有道理的,我不会太难!
    • 更新了我的答案,亚当。如果它对您有用,请不要忘记投票。 :)
    • 太棒了,非常感谢,David 非常感谢 - 虽然作为一个新手,我的支持似乎没有任何分量 - 抱歉!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 2019-04-05
    • 2017-02-06
    • 1970-01-01
    相关资源
    最近更新 更多