当用户输入的值不是该组合框的数据提供者中的值时,我想对火花组合框进行验证。如果用户输入的值不是数据提供者中的值,任何人都可以给我代码如何进行验证应进行焦点更改验证。谢谢
问问题
1329 次
1 回答
0
您可以将属性设置textInput
为组合框,并管理对来自关联函数的输入的检查...
<fx:Script>
<![CDATA[
protected function change(event:TextEvent):void
{
}
]]>
</fx:Script>
<s:ComboBox textInput="change(event)"/>
flash.display.InteractiveObject.textInput
当用户输入一个或多个文本字符时调度。各种文本输入法都可以生成此事件,包括标准键盘、输入法编辑器 (IME)、语音或语音识别系统,甚至是粘贴没有格式或样式信息的纯文本的行为。
事件类型:
flash.events.TextEvent.TEXT_INPUT
编辑
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.FlexEvent;
//dataprovider initialization
[Bindable]private var d:ArrayCollection = new ArrayCollection([
{name: "Values 1"}, {name: "Values 2"}, {name: "Values 3"}
]);
protected function change(event:TextEvent):void
{ // if enter key is pressed
if (event.text.charAt(event.text.length-1) == "\r")
{
// if the text inserted in the combobox is one of the
// item in the dataprovider
if (comboBox.selectedIndex >= 0)
Alert.show("something selected");
else // if the text is not an item in the dataprovider
Alert.show("nothing selected");
}
}
]]>
</fx:Script>
<s:ComboBox id="comboBox" textInput="change(event)"
dataProvider="{d}" labelField="name"/>
编辑 2
要从动作脚本设置边框颜色,您可以执行以下操作:
comboBox.setStyle("borderColor","#ff0000"); // set the bordercolor to red
如果您不需要对插入的文本进行特别检查,您可以简单地在 ComboBox 上设置属性更改
protected function index_change(event:IndexChangeEvent):void
{
if (comboBox.selectedIndex >= 0 )
Alert.show("something selected")
else
Alert.show("nothing selected");
}
<s:ComboBox id="comboBox" dataProvider="{d}" labelField="name"
change="index_change(event)"
/>
于 2012-05-03T07:36:58.110 回答