0

我使用Sencha Architect创建项目Sencha touch 2 lib 。如何在 only-accept-number-filed 上添加掩码格式(美国电话号码掩码)

例如,当用户输入

1234567890

,它应该显示

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

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

请帮忙。谢谢你。

4

2 回答 2

2

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

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

在您的情况下编辑您需要定义一个新类,将其命名为 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',并添加 requires: ['MyApp.ux.field.PhoneText'] 为好。

于 2013-08-27T09:05:46.563 回答
0

您可以使用 spinnerfield,它也将允许字符并对其进行掩码,然后按照您的操作设置值。

于 2013-08-27T08:11:07.983 回答