FLEX 4中的ComboBox功能

时间:2012-11-27 03:34:24

标签: actionscript-3 combobox flex4

我正在研究FLEX 4,我遇到了一个关于FLEX 4combobox的奇怪问题。与下拉列表不同,组合框允许用户键入值,然后组合框将显示建议值列表。我的问题是:组合框似乎允许用户输入并保存无意义的值。例如,在下图中,允许值列表是1982年至2040年的集合。

enter image description here

但是,用户可以在组合框中键入“test”并单击“保存”。最终结果是,结束季度/结束年对 3-test 。显然这是一个荒谬的价值观。

为什么会这样?有办法防止这种情况吗?我知道可以简单地切换到下拉列表,但由于“建议值”功能,我更喜欢保持组合框。

后续问题:无论有什么修复,是否可以“全球”进行?意思是,我们可以在代码中的某一点做一个修复,它会在整个项目中生效吗?

感谢。

1 个答案:

答案 0 :(得分:1)

这是此类控件的标准行为。 ComboBox不知道输入有效或无效的原因。它旨在接受任何输入,我们有责任验证输入是否适合我们的应用程序。

您可以做一些事情,这些事情的某些组合应该有所帮助:

  • ComboBox的{​​{3}}属性设置为仅包含允许输入的有效字符的字符串,如字符串“0123456789”。

  • 使用restrict属性将输入限制为4个字符。

  • 使用maxChars属性。您可以将其设置为一个函数,根据用户的输入决定选择什么值。

  • 使用labelToItemFunctionNumberValidator验证用户是否输入了适当的值(或者只是在保存按钮的点击处理程序中自行添加此逻辑)

  • (可能不太有用)使用DateValidator属性。您可以使用它来自动选择第一个/最后一个(或任何)值作为默认值,而不是使用无意义的输入。