0

複数のフィールドに対して簡単な検証を実行したい。これらのフィールドは、表示方法が標準ではないため、mx:Form内にないことに注意してください。検証は正しく機能しますが、エラーメッセージでtextInputが強調表示されません。

myValidator.source = empName1;
myValidator.property = "text";
if(myValidator.validate().type == ValidationResultEvent.VALID)
{
 Alert.show("good");
}
...
<mx:StringValidator id="myValidator" required="true" minLength="1" requiredFieldError="This field is required" />
<mx:TextInput x="152" y="32" width="207" id="empName1"/>

複数のフィールドに対して同じバリデーター「myValidator」を使用したいので、ソースとプロパティがactionscript3コードで設定されていることに注意してください。

ありがとう

更新: これが私が作成した同様の関数で、機能します:

private function validateField(fields:Array):Boolean 
{
    var rtnResult:Boolean = true;
    for each(var i:Object in fields)
    {
        myValidator.source = i;
        myValidator.property = "text";

        i.validateNow();
        if(myValidator.validate().type == ValidationResultEvent.INVALID)
            rtnResult = false;
    }
    return rtnResult;
}

これはそのように呼ばれます:

if(!validateField([TicketTitle,TicketDesc]))
{
 Alert.show("Required fields were left blank!", "Warning");
 return;
}

およびmxmlバリデーター

<mx:StringValidator id="myValidator" required="true" minLength="1" requiredFieldError="This field is required" />
4

1 に答える 1

0

解決しました...これが必要でした:

empName1.validateNow();
于 2009-07-03T19:42:50.163 に答える