これが私の質問を説明するための簡単なアプリケーションです。指示:
- 添付の Flex 4 コードを実行する
- 最初のフォーム項目に 0 を入力します (例: "Enter Speed (MPH)")。
- 2 番目のフォーム項目をクリックします
- エラー文字列が最初のフォーム項目の右側にあることに注意してください
質問: フォームの幅を固定したまま、エラー文字列を最初のフォーム アイテムのすぐ右に表示するにはどうすればよいですか (たとえば、現在の例では 400 ピクセルの固定フォーム幅を使用しています)。
<?xml version="1.0" encoding="utf-8"?>
<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" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
private function validateSpeed():void {
var num:Number=Number(speedId.text);
speedId.errorString="";
if (speedId.text=="") {
speedId.errorString="This field is required.";
return;
} else if ( Number(speedId.text)<1000) {
speedId.errorString="The speed must be at least 1 MPH.";
return;
} else if ( Number(speedId.text)>1e11) {
speedId.errorString="The speed cannot exceed 100 MPH.";
return;
}
}
]]>
</fx:Script>
<s:Form width="600" >
<s:layout>
<s:FormLayout gap="-10" horizontalAlign="center"/>
</s:layout>
<s:FormItem id="speedFI" label="Enter Speed (MPH):" width="600" required="true">
<s:TextInput id="speedId" width="195" textAlign="right"
restrict="0-9" maxChars="7"
focusOut="validateSpeed();"
toolTip="Enter a speed between 1 and 100 MPH."/>
</s:FormItem>
<s:FormItem id="dummyFI" label="Dummy Label:" width="600" required="true">
<s:TextInput id="dummyId" width="195" textAlign="center"
restrict="0-9" maxChars="7" prompt="Click here after entering 0 above."
toolTip="Dummy form item."/>
</s:FormItem>
</s:Form>
</s:Application>