我可以要求 TextInput 吗?
Can I make a TextInput required?
我有很多像
这样的代码
if (myTextInput.text != "") {
handleEvent();
}
TextInput 是否有一些 属性 我可以用来自动检查空字符串?
类似于我将其设置为:
<s:TextInput id="myInput" enter="myInputHandler()" restrict="A-Za-Z0-9"/>
然后 myInputHandler()
只有当文本是字母数字时才会被调用。我想添加一个长度大于 0 的额外限制。
我知道验证器,但我仍然需要手动调用它们。
尝试:
if ( String(myTextInput.text).length > 0 )
{
handleEvent();
}
如果这就是您需要的全部代码(没有额外的命令),那么只需一行即可:
if ( String(myTextInput.text).length > 0 ) { handleEvent(); }
要创建一个 TextInput
组件 "required",例如,您可以创建自己的文本输入组件并使用 属性 来指示是否需要该控件,一些事件侦听器喜欢 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。
希望能帮到你。
也许,这不是那种解决方案,但是,您可以将 TextField 放入具有 "required" 字段
的 FormItem 中
我有很多像
这样的代码if (myTextInput.text != "") {
handleEvent();
}
TextInput 是否有一些 属性 我可以用来自动检查空字符串?
类似于我将其设置为:
<s:TextInput id="myInput" enter="myInputHandler()" restrict="A-Za-Z0-9"/>
然后 myInputHandler()
只有当文本是字母数字时才会被调用。我想添加一个长度大于 0 的额外限制。
我知道验证器,但我仍然需要手动调用它们。
尝试:
if ( String(myTextInput.text).length > 0 )
{
handleEvent();
}
如果这就是您需要的全部代码(没有额外的命令),那么只需一行即可:
if ( String(myTextInput.text).length > 0 ) { handleEvent(); }
要创建一个 TextInput
组件 "required",例如,您可以创建自己的文本输入组件并使用 属性 来指示是否需要该控件,一些事件侦听器喜欢 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。
希望能帮到你。
也许,这不是那种解决方案,但是,您可以将 TextField 放入具有 "required" 字段
的 FormItem 中