【问题标题】:jQuery mask plugin translation set default value?jQuery掩码插件翻译设置默认值?
【发布时间】:2014-07-10 12:31:01
【问题描述】:

我正在使用jQuery-Mask-Plugin 来屏蔽时间输入。

我是这样配置的:

$('#time').mask('99r00', {translation: { 'r': { pattern: /[\.,:]/ }}});

使用此掩码,用户可以输入以下法定时间:

21:00
21.00
21,00
,30

这几乎就像我想要的那样工作,但我想为用户实现一件事:

如果用户输入2100,我想将其屏蔽为21:00。所以它需要知道默认字符是:
面具不知道他需要在那里输入模式中的哪个字符,并禁止进一步输入。

那么如何为翻译选项设置一个默认字符呢?

谢谢。

fiddle

【问题讨论】:

    标签: javascript jquery jquery-mask


    【解决方案1】:

    我修改了插件,在翻译中添加了一个名为defaults 的自定义选项。 Demo.

    //getMasked: function
    //... lines 298 - 302
    else if (translation.defaults) {
        buf[addMethod](translation.defaults);
        m += offset;
        v -= offset;
    }    
    //...                                                                        
    
    $('#timetrans').mask('99r00', {translation: { 
              'r': { pattern: /[:,\\.]/, defaults: ':'}}});
    

    【讨论】:

    • 这正是我想要的 :) 需要等待几个小时才能奖励赏金。
    • 这看起来像是对jQuery-Mask-Plugin 的一个很好的补充。你可以提出拉取请求吗?否则我想在你的许可下做。
    • @A1rPun 我真的不介意你提出拉取请求。 :) 添加测试等需要一些时间。
    • igorescobar committed 它在 1.8.0 版中!
    【解决方案2】:

    我认为这正是你想要的:

    $('#time').mask('00:00');
    

    它可以完成您需要的所有替换。

    【讨论】:

    • 请阅读我的问题并查看小提琴。您的解决方案不接受点和逗号。
    【解决方案3】:

    你猜,那是smth。带插件版本。我用了最新的并写了小提琴。

    http://jsfiddle.net/t4f5j/

    $('#timetrans').mask('99D99', {'translation': {D: {pattern: /[\.,:]/}}});
    

    【讨论】:

    • 仍然有同样的问题.. 尝试在字段中输入 2100,它只输入 21。
    • 翻译只是意味着。 , : 允许使用符号
    • 我知道,我不想让用户输入掩码。
    • 所以,你应该离开99:99
    • 当掩码始终为:时,用户如何输入点或逗号?
    猜你喜欢
    • 2012-04-05
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 2016-08-10
    • 2015-02-20
    • 1970-01-01
    相关资源
    最近更新 更多