0

日付には mx:DateField を使用し、editable="true" を使用して、日付を選択するか入力することもできます。要件は、このフィールドに 10 文字を超えて入力できないことです (2010 年 10 月 10 日)。しかし、DateField には、それを制限する maxChars プロパティがありません。

そこで、Text Field + DateChooser を使用して文字数を制限しようとしました。すべてが希望どおりに機能しますが、問題は、DateChooser がページにカレンダー全体を表示し、カレンダーをポップアップするカレンダー アイコンとして (DateField として) 表示しないことです。

だから今私のqは

1) DateField を使用して、テキスト フィールドに入力できる文字数を 10 に制限するにはどうすればよいですか?

また

2) DateChooser を使用して、外観を変更してカレンダー アイコンを表示し、クリックするとカレンダーをポップアップとして表示するにはどうすればよいですか (DateField と同様)。

誰かがこれについて私を助けることができれば、それは素晴らしいことです.

4

1 に答える 1

2

次のようなものから始めます。

<s:TextInput click="dc.visible=!dc.visible" maxChars="10" />
<mx:DateChooser id="dc" visible="false" />

ここから、日付チューザーへのクリックイベントを処理し、テキスト入力を適切に入力する必要があります

更新:コメントからあなたの質問に答えようとして

UI:

<s:HGroup>
    <s:TextInput id="dateInput" click="dateInput_clickHandler(event)" maxChars="10" />
    <mx:DateChooser id="dc" visible="false" includeInLayout="false" change="dc_changeHandler(event)" />
</s:HGroup>

脚本:

protected function dateInput_clickHandler(event:MouseEvent):void
{
    dc.includeInLayout = !dc.includeInLayout;
    dc.visible = !dc.visible;
}

protected function dc_changeHandler(event:CalendarLayoutChangeEvent):void
{       
    dateInput.text = dateFormatter.format(event.newDate);
    dateInput_clickHandler(null);
}

宣言:

<mx:DateFormatter id="dateFormatter" formatString="MM/DD/YYYY" />

お役に立てれば!-イアン

于 2011-01-31T20:21:27.063 に答える