Sencha touch将掩码格式添加到数字字段

时间:2013-08-27 07:46:44

标签: extjs sencha-touch-2 mask phone-number

我使用 Sencha Architect 创建项目 Sencha touch 2 lib。 如何在仅接受号码字段

上添加掩码格式(美国电话号码掩码)

例如,当用户输入

  

1234567890

,它应该显示

  

123-456-7890或(123)456-7890

当我尝试使用数字字段时,它可以帮助过滤仅接受数字但是当我将数字字段的值设置为123-0001时,它只会显示122,因为它会减去123和1

请帮忙。谢谢。

2 个答案:

答案 0 :(得分:2)

Touch有一个很棒的设施,您可以根据自己的需要使用它。看看Class System description,它的第一部分讨论了setName()用法

简而言之,每个配置条目都有相应的apply()和update()函数,该函数用于所有代码库

EDIT 在您的情况下,您需要定义一个新类,将其命名为PhoneText

Ext.define('MyApp.ux.field.PhoneText', {
    extend: 'Ext.field.Text',
    xtype: 'phonetextfield',
    applyValue: function(value) {
        var ext = getExt(value),
            partOne = getPartOne(value),
            partTwo = getPartTwo(value);

        return Ext.String.format('(%s) %s-%s', ext, partOne, partTwo)
    }
}

只需使用您自己的版本applyValue函数,该函数将输入值转换为您的格式。

请注意,在面板定义中,您应该使用xtype:'phonetextfield',而不是'textfield',并添加要求:['MyApp.ux.field.PhoneText']。

答案 1 :(得分:0)

你可以使用spinnerfield,它也会允许角色并掩盖它,然后在你做的时候设置值。