【问题标题】:Sencha extjs setValue string to numberfieldSencha extjs setValue 字符串到 numberfield
【发布时间】:2017-02-27 11:04:16
【问题描述】:

我需要使用 numberfield 为用户输入数字。当我设置字符串“123,555”时,它只显示 123 到 numberfield。但如果我使用文本字段,它会按预期工作。我用它进行千次分离。

xtype: 'numberfield',
itemId: 'payment1',
cls : 'txtAlignRight',
flex : 4,
value:'0',
autoComplete: false,
autoCorrect: false,
clearIcon: false,
originalValue: true,
required: true,
maxLength: 15,

//------------------
num.setValue('123,555')
//result = 123

有什么解决办法吗?提前致谢。 注意:我使用的是 sencha extjs 6 modern。

【问题讨论】:

标签: javascript string extjs extjs6 extjs6-modern


【解决方案1】:

您可以使用数字字段的setRawValue() 方法。这将绕过您在使用 setValue() 时获得的所有转换和验证。

文档: http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.form.field.Number-method-setRawValue

示例: https://fiddle.sencha.com/fiddle/1iuu/preview

这只会设置值,不能像现在这样使用按钮来增加/减少。

【讨论】:

  • 我使用 sencha extjs 6 现代。 setRawValue() 不起作用。
  • 我的错;我错过了你问题末尾的注释。我建议在您的问题中添加“extjs6-modern”或“extjs6”标签。
  • 谢谢,我更新了我的问题。你对此有什么想法吗?
  • 您需要逗号在数字字段中显示吗?还是您只是尝试使用数字格式的字符串设置数字字段的值?如果您需要逗号显示在字段中,那么我认为您唯一的选择是使用带有一些验证的文本字段。如果您只是想用数字格式的字符串设置字段,那么我有一个可行的解决方案。
  • 其实,我希望逗号显示在数字字段中。嗯,我修好了。
【解决方案2】:

更改允许使用的字符。您可能想更改这些属性
这些属性的工作方式是here

  1. autoStripChars:假,
  2. disableKeyFilter: 真
  3. stripCharsRe: 假
  4. maskRe: 假

听起来您需要将Formatting 添加到数字字段中。

这是一个override,它将 useThousandSeperator 添加到数字字段

【讨论】:

    【解决方案3】:

    数字字段只允许数字(0-9 和'.') 如果您仍然想在 numberfield 中允许 ',' ,那么您可以通过以下属性进行设置。

    baseChars :'0123456789,'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      相关资源
      最近更新 更多