Extjs Sencha touch将遮罩格式添加到数字字段

Extjs Sencha touch将遮罩格式添加到数字字段,extjs,sencha-touch-2,mask,phone-number,Extjs,Sencha Touch 2,Mask,Phone Number,我使用Sencha架构师创建项目Sencha touch 2lib。 如何在仅接受号码字段中添加掩码格式(美国电话号码掩码) 例如,当用户输入 1234567890 ,它应该显示 123-456-7890或(123)456-7890 当我尝试使用数字字段时,可以帮助筛选只接受数字,但当我将数字字段的值设置为123-0001时,它只显示122,就像它减去123和1一样 请帮忙。谢谢。您可以使用spinnerfield,它也将允许角色和掩码,然后在您执行操作时设置值 Touch有一个很棒的功能,您可

我使用Sencha架构师创建项目Sencha touch 2lib。 如何在仅接受号码字段中添加掩码格式(美国电话号码掩码)

例如,当用户输入

1234567890

,它应该显示

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

当我尝试使用数字字段时,可以帮助筛选只接受数字,但当我将数字字段的值设置为123-0001时,它只显示122,就像它减去123和1一样


请帮忙。谢谢。

您可以使用spinnerfield,它也将允许角色和掩码,然后在您执行操作时设置值

Touch有一个很棒的功能,您可以根据自己的需要使用它。看一看,它的第一部分讨论了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']。

它不应该是电话号码字段的微调器字段。感谢您的回答然后使用textfield并将其屏蔽为仅允许数字、brakets和破折号。如何将textfield设置为仅允许数字、brakets和破折号,是否有类似的选项,或者我必须使用
onKeyUp
事件进行编码我对Sencha系统类不太清楚,请您帮我举个例子。非常感谢。