flex移动验证:如何删除红色错误边框?

时间:2012-10-20 11:03:31

标签: flex flex4 flex4.5 flex-mobile flex4.6

我在flex移动应用程序中使用验证器。 我想在验证器触发错误时删除红色边框。

    <mx:EmailValidator id="emailV"  source="{login_txt}" property="text"  triggerEvent="click" trigger="{connexion_btn}"  />
    <mx:StringValidator id="passwordV" source="{password_txt}" property="text"  trigger="{connexion_btn}"  triggerEvent="click" />

我试过了:

target.errorString = null; // not good

有任何线索吗?

3 个答案:

答案 0 :(得分:1)

通常我会将errorString设置为空字符串;我在组件的实例上做了这个,上面有红色字符串。我相信在这种情况下,它将是你的触发器组件:

login_txt.errorString = '';
password_txt.errorString = '';

如果您设置errorString的目标与指定为验证程序源的实际组件相同,则根据提供的有限代码我不清楚。可能是,我们没有提供足够的信息来确定。

答案 1 :(得分:0)

红色光晕在spark.skins.spark.ErrorSkin中定义,它是UIComponent的errorSkin属性的默认值。您不能将此属性设置为null,但您可以扩展ErrorSkin类并覆盖生成发光的方法(即updateDisplayList和processBitmap)。

我创建了一个NullFocusSkin,用于消除红色错误发光和蓝色焦点发光。我将组件的errorSkin和focusSkin属性设置为那个并且嘿presto - 没有更讨厌的光晕,也不需要手动清除errorString!

import spark.skins.spark.HighlightBitmapCaptureSkin;

public class NullFocusSkin extends HighlightBitmapCaptureSkin
{
    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
    {   
        // Do nothing.
    }

    override protected function processBitmap():void
    {
        // Do nothing.
    }
}

答案 2 :(得分:0)

除了将错误字符串设置为空之外,我还必须调用showFocus(),否则红色边框不会消失。

Codepen link