我有一个onChange事件,我想测试一个comboBox是否为空,如果是,我想改变comboBox的颜色。我可以找到一个值,例如“Fred Bloggs”但没有测试它是否为空:
if (e.target.selectedItem.label == ""){ // This doesn't work
trace("EMPTY");
my_color.color = 0x002222;
instructorList.transform.colorTransform = my_color;
}
答案 0 :(得分:1)
如果未选择任何项目, selectedItem 属性将为null:
comboBox.addEventListener(MouseEvent.CLICK, mouseHandler);
function mouseHandler(e:MouseEvent) {
if (e.currentTarget.selectedItem == null){ // This doesn't work
trace("EMPTY");
my_color.color = 0x002222;
instructorList.transform.colorTransform = my_color;
}
}
请注意,如果ComboBox中没有项目,则不会触发 CHANGE 事件,因为无法将其“更改”为任何内容。而是将此测试添加到 CLICK 处理程序。
更新:根据以下评论中的新信息,只需测试索引是否与列表顶部的空白项匹配。
if (e.currentTarget.selectedIndex == 0) {
trace("EMPTY");
my_color.color = 0x002222;
instructorList.transform.colorTransform = my_color;
}
答案 1 :(得分:0)
仅当用户启动更改时才会调度弹性变更事件。如果更改是用户启动的,则不会为null。如果要查找null,请尝试使用valueCommit属性/事件。