我正在研究FLEX 4,我遇到了一个关于FLEX 4combobox的奇怪问题。与下拉列表不同,组合框允许用户键入值,然后组合框将显示建议值列表。我的问题是:组合框似乎允许用户输入并保存无意义的值。例如,在下图中,允许值列表是1982年至2040年的集合。
但是,用户可以在组合框中键入“test”并单击“保存”。最终结果是,结束季度/结束年对 3-test 。显然这是一个荒谬的价值观。
为什么会这样?有办法防止这种情况吗?我知道可以简单地切换到下拉列表,但由于“建议值”功能,我更喜欢保持组合框。
后续问题:无论有什么修复,是否可以“全球”进行?意思是,我们可以在代码中的某一点做一个修复,它会在整个项目中生效吗?
感谢。
答案 0 :(得分:1)
这是此类控件的标准行为。 ComboBox
不知道输入有效或无效的原因。它旨在接受任何输入,我们有责任验证输入是否适合我们的应用程序。
您可以做一些事情,这些事情的某些组合应该有所帮助:
将ComboBox
的{{3}}属性设置为仅包含允许输入的有效字符的字符串,如字符串“0123456789”。
使用restrict属性将输入限制为4个字符。
使用maxChars属性。您可以将其设置为一个函数,根据用户的输入决定选择什么值。
使用labelToItemFunction或NumberValidator验证用户是否输入了适当的值(或者只是在保存按钮的点击处理程序中自行添加此逻辑)
(可能不太有用)使用DateValidator属性。您可以使用它来自动选择第一个/最后一个(或任何)值作为默认值,而不是使用无意义的输入。