我使用Sencha Architect创建项目Sencha touch 2 lib 。如何在 only-accept-number-filed 上添加掩码格式(美国电话号码掩码)
例如,当用户输入
1234567890
,它应该显示
123-456-7890 或 (123) 456-7890
当我尝试使用可以帮助过滤仅接受数字的数字字段时,但是当我将数字字段的值设置为 123-0001 时,它只显示 122,因为它减去 123 和 1。
请帮忙。谢谢你。
我使用Sencha Architect创建项目Sencha touch 2 lib 。如何在 only-accept-number-filed 上添加掩码格式(美国电话号码掩码)
例如,当用户输入
1234567890
,它应该显示
123-456-7890 或 (123) 456-7890
当我尝试使用可以帮助过滤仅接受数字的数字字段时,但是当我将数字字段的值设置为 123-0001 时,它只显示 122,因为它减去 123 和 1。
请帮忙。谢谢你。
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'] 为好。
您可以使用 spinnerfield,它也将允许字符并对其进行掩码,然后按照您的操作设置值。