0

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

在此处输入图像描述

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

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

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

谢谢。

4

1 回答 1

1

对于这种类型的控件,这是非常标准的行为。ComboBox不知道是什么使输入有效或无效。它旨在接受任何输入,我们有责任验证输入是否适合我们的应用程序。

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

  • 将 的限制属性设置为ComboBox仅包含您将允许输入的有效字符的字符串,例如字符串“0123456789”。

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

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

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

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

于 2012-11-27T04:59:57.780 回答