Ajaxフレームワーク UI部品リファレンス |
目次
索引
![]() ![]() |
第2章 画面部品 | > 2.1 フォーム部品 |
検証を実行するValidationHelper、入力制限を行うLimiterなどの機能付加部品を利用することができます。
<div rcf:type="DateInput" ... ></div> |
または
<span rcf:type="DateInput" ... ></span> |
子要素は指定できません。
本部品は以下のように表示されます。
表の項目の意味は、“表の項目の意味”を参照してください。
名前 |
データ型 |
説明 |
省略 |
省略値 |
属性指定 |
更新 |
部分更新 |
---|---|---|---|---|---|---|---|
date |
Date |
日時データを指定します。 |
可 |
null |
値、バインド |
可 |
不可 |
utc |
Boolean |
世界標準時間(UTC)として扱うかどうかを指定します。
converterプロパティが設定された場合、この設定は無効となります。 |
可 |
false |
値 |
不可 |
不可 |
converter |
format関数とparse関数を持つObject |
以下の関数を持つオブジェクトを指定します。
format関数またはparse関数を持たないオブジェクトを指定した場合は、エラーになります。詳細は、“converterプロパティの指定方法”を参照してください。 日時は、デフォルトでは、ローカル時間として扱います。utcプロパティがtrueに設定された場合は、世界標準時間(UTC)として扱います。 |
可 |
デフォルトの変換を実行するObject |
値 |
不可 |
不可 |
refocus |
Boolean |
入力フィールドからフォーカスが外れて、Dateオブジェクトへの変換に失敗した場合、フォーカスを再度DateInputに戻すかどうかを指定します。
Internet Explorerでだけ指定可能です。 |
可 |
false |
値 |
可 |
不可 |
TextInputのプロパティも指定できます。詳細は、“TextInput”の“プロパティ”を参照してください。
部品共通のプロパティも指定できます。詳細は、“画面部品共通プロパティ”を参照してください。
なお、空文字列を指定した場合は、表示されません。
注) 変換に失敗した場合は、valueプロパティとdateプロパティは同期しません。以下のようになります。
valueプロパティ(入力テキスト)とdateプロパティが同期しているかどうかは、isSyncメソッドで確認できます。詳細は、JavaScript APIを参照してください。
成功した場合: dateプロパティに変換された値が設定され、dateparsesuccessイベント送出
失敗した場合: dateプロパティにnullが設定され、dateparseerrorイベント送出
変換に失敗した場合の処理について以下に示します。
<span rcf:type="DateInput" ... rcf:onDateParseError="alert('入力が間違っています')"></span> |
なお、dateparsesuccessまたはdateparseerrorイベントが発生する前に、dateプロパティに値が設定されるため、以前の値から変更した場合は、datechangeイベントが先に発生します。
文字列からDateオブジェクトへの変換およびDateオブジェクトから文字列の変換は、可逆である必要があります。
指定するオブジェクトは、文字列に変換するformat、および入力テキストからDateを生成するparseを実装したオブジェクトである必要があります。
converterプロパティで指定されたformat関数とparse関数は、以下のように呼び出されます。
入力テキスト“xxxx年xx月xx日”とJavaScriptのDateオブジェクトを変換する場合の記述例を、以下に示します。
【処理概要】
<script type="text/javascript"> //<![CDATA[ var df1 = { format: function(date) { if (date == null) return ""; return date.getFullYear() + "年" + (date.getMonth()+1) + "月" + date.getDate() + "日"; }, parse: function(value) { var reg1 = new RegExp("^\\s*([0-9]{4,})年([0-9]{1,2})月([0-9]{1,2})日\\s*$"); var v = value.match(reg1); if (v) { var year = parseInt(v[1]); var month = parseInt(v[2])-1; var day = parseInt(v[3]); //TODO: year, month, dayの値のチェック return new Date(year, month, day); } throw "Invalid value"; } }; //]]> </script> ... <div rcf:id="dateInput1" rcf:type="DateInput" rcf:converter="df1"></div> |
<script type="text/javascript"> //<![CDATA[ var lp1 = { getLabel: function(value, date, sync) { if (!sync) { return "正しい値を入力してください"; } return value; } }; //]]> </script> ... <div rcf:id="dateInput1" rcf:type="DateInput" rcf:labelProvider="lp1"></div> |
フォーマットを行うオブジェクトには、getLabelを用意する必要があります。getLabelのインタフェースは以下のとおりです。
メソッド |
getLabel(value, date, sync) |
|
引数 |
value |
valueプロパティの値 |
date |
dateプロパティの値 |
|
sync |
valueとdateの同期状態 |
|
戻り値 |
表示する文字列 |
DateInput部品のlabelProviderプロパティは、getLabelを持つオブジェクトを指定します。上記の例では、lp1を指定します。
lp1のgetLabelは、同期している場合は入力値を返し、同期していない場合は“正しい値を入力してください”という文字列を返すようになっています。
このように指定すると、上記の例では、以下のようにDateに変換できない値が入力された場合、“正しい値を入力してください”という文字が表示されるようになります。
conveterとlabelProviderの違い
converterは、入力テキストとDateオブジェクトの変換方法を指定することができます。これにより、デフォルトの変換方法を変更することができます。
一方、labelProviderは、フォーカスがない場合に表示する文字列を変更するときに指定します。これにより、実際の入力テキストとフォーカスがない場合の表示を変えることができます。
refocusプロパティに関する注意事項
refocusプロパティは、入力テキストからDateオブジェクトへの変換に失敗したときに、フォーカスをDateInputに戻す機能です。ただし、以下の場合はフォーカスが戻らないことがあります。
本部品のスタイルプロパティは、TextInputと同じです。詳細は、“TextInput”の“スタイルプロパティ”を参照してください。ただし、クラス名は“rcf-DateInput”となります。
詳細は、“スタイルプロパティ”を参照してください。
名前 |
説明 |
イベントオブジェクト |
---|---|---|
onDateChange |
dateプロパティの値が変更されたときに呼ばれます。 |
|
onDateParseSuccess |
入力テキストからDateオブジェクトの変換が成功したときに呼ばれます。 |
|
onDateParseError |
入力テキストからDateオブジェクトの変換に失敗したときに呼ばれます。 |
TextInputのイベントリスナもあります。詳細は、“TextInput”の“イベントリスナ”を参照してください。
部品共通のイベントリスナもあります。詳細は、“画面部品共通イベントリスナ”を参照してください。
デフォルトの変換におけるDateParseEventのerrorプロパティ
converterプロパティを設定していないデフォルトの変換の場合、変換に失敗した場合に呼ばれるonDateParseErrorで渡されるDateParseEventのerrorプロパティには、以下のメッセージを含んだErrorオブジェクトが設定されます。
メッセージ番号はErrorオブジェクトのrcf.messageIDプロパティ、エラーメッセージはErrorオブジェクトのmessageプロパティから取得できます。メッセージの詳細は、“ユーザーズガイド”を参照してください。
なお、converterを指定した場合、DateParseEventのerrorプロパティには、そのconverterのparse関数で発生したエラーが設定されます。
■isSyncメソッド
メソッド |
isSync() |
引数 |
なし |
戻り値 |
true:同期している場合 |
例外 |
なし |
説明 |
valueプロパティ(入力テキスト)とdateプロパティの値の同期状態を返します。 |
■parseメソッド
メソッド |
parse() |
引数 |
なし |
戻り値 |
true:プロパティの設定に成功しました。 |
例外 |
なし |
説明 |
入力テキストをDateオブジェクトに変換し、dateプロパティに設定します。 |
■clearメソッド
メソッド |
clear() |
引数 |
なし |
戻り値 |
なし |
例外 |
なし |
説明 |
dateプロパティおよびvalueプロパティをデフォルト値に戻し、入力テキストを空にします。 |
部品共通のJavaScript APIは、“画面部品共通JavaScript API”を参照してください。
目次
索引
![]() ![]() |