apache-flex 是否可以将TextInput设为必填项?

z9gpfhce  于 2022-11-01  发布在  Apache
关注(0)|答案(3)|浏览(148)

我有很多代码,比如

if (myTextInput.text != "") {
    handleEvent();
}

TextInput是否有一些属性可以用来自动检查空字符串?
类似于如果我这样设置它:

<s:TextInput id="myInput" enter="myInputHandler()" restrict="A-Za-Z0-9"/>

那么myInputHandler()只在文本是字母数字的情况下才被调用。
我知道验证器,但我仍然需要手动调用它们。

2hh7jdfx

2hh7jdfx1#

例如,要使TextInput组件成为“必需”组件,可以创建自己的文本输入组件,并使用一个属性来指示该控件是否是必需的,还可以使用一些事件侦听器(如for FocusEvent.FOCUS_OUT事件)来强制用户在该输入中输入内容。
为此,请看以下示例:

package myComponent
{
    import flash.events.FocusEvent;     
    import spark.components.TextInput;

    public dynamic class MyTextInput extends TextInput
    {
        private var _required:Boolean = false;
        public function MyTextInput()
        {
            super();
            this.addEventListener(FocusEvent.FOCUS_OUT, on_KeyDown);
        }
        public function set required(required:Boolean): void {
            this._required = required;
        }
        public function get required(): Boolean {
            return this._required;
        }       
        private function on_KeyDown(e:FocusEvent): void {           
            if(this.text == '' && this._required){
                this.setFocus();
            }
        }

    }
}

当然,这只是一个例子,当你的用户输入为空时,你可以使用任何你想要的行为...
然后使用该新组件:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" 
               <!-- don't forget to include the namespace definition for your custom component -->
               xmlns:MyComponent="myComponent.*">

    <MyComponent:MyTextInput required="true" restrict="A-Za-z0-9"/>

</s:Application>

有关创建自己的组件的更多信息,请查看here
希望能有所帮助。

kcwpcxri

kcwpcxri2#

请尝试:

if ( String(myTextInput.text).length > 0 ) 
{ 
    handleEvent(); 
}

如果这就是你所需要的全部代码(没有额外的命令),那么就用一行代码:

if ( String(myTextInput.text).length > 0 ) { handleEvent(); }
00jrzges

00jrzges3#

也许,这不是那种解决方案,但是,您可以将TextField放入FormItem中,其中包含“必需”字段

相关问题