追跡振る舞い

フォーム内で最後に使用されたフィールドを追跡して、 そのフォームが送信されたときに、 フィールドの ID をサーバーに受け渡します。 フォームが送信される前に、 どのフィールドが最後にフォーカスされていたかを追跡します。
注: この振る舞いのスコープには、制限があります。 ページ上に hxclient ライブラリー・ベースの コンポーネントがある場合に、正しく動作します。 ページ上に ODC コンポーネント (タブ・パネル、 ツリー・コントロールなど) がある場合は、 正しく動作しない場合があります。 focus() JavaScript™ 呼び出しなどを 発生させる「手動」イベントを設計者がコード化した場合、 正しく動作しない場合があります。 以上のような制限がありますので、 コンテンツが厳密に制御されている ページ内 (iSeries™ が 発行しているページなど) でのみ、この振る舞いを使用してください

フォームが送信される前に、 フォーム内のどのフィールド (フォーム送信用のボタン (存在する場合) を除く) が フォーカスされていたかを追跡します

この振る舞いは、属性を持ちません。 代わりに、特殊名を持つフォーム内の隠しフィールドを検索します。 form-id:POST_LASTFIELD (form-id はフォームの ID を指します) と いう ID を持つフィールドがフォーム内で検出されると、 この隠しフィールドを使用して、 フォーカスされていたフィールドの ID をサーバーに送り戻します。 form-id:POST_LASTCURSOR と いう ID を持つフィールドがフォーム内で検出されると、 この隠しフィールドを使用して、 そのフィールド内のカーソル位置をサーバーに送り戻します。 そのフィールドが選択をサポートしていない場合、 カーソル位置は -1 になります。 そうでない場合、直後にテキスト・カーソルが来る ゼロ・ベースの文字位置が、カーソル 位置になります (例えば、 ゼロが戻された場合、フィールド内の最初の文字の前に カーソルがあります)。

この振る舞いは、フォーム内で発生する フォーカス・イベントを (必要ならば、キーダウン・イベントや マウス・イベントも) 追跡します。 JavaScript から直接イベントが生成される場合は、 ブラウザーではフォーカスやクリックなどのイベントを生成しません。 例えば、Javascript obj.focus() 呼び出しが ページ内で行われるときは、イベントは生成されません。 この場合、イベントが生成されていないので、 フィールドがフォーカスされたか (またはカーソルが移動されたか) どうかは、 この振る舞いでは判断できません。 hxclient ベースのコンポーネントと振る舞いであれば、 この場合でもフォーカスを 正しく追跡できます (共通のフォーカス管理ルーチンを使用しているため)。 しかし、非 hxclient ベースの Javascript によって フォーカス (またはカーソル) が設定されている場合は、 正しく作動しません。 したがって、odc ベースのコンポーネントは、 正しく作動しない可能性があります (非 hxclient ベースのため)。 このページ上のカスタム JavaScript も、 正しく作動しない可能性があります。

コンポーネントを発行する JSF タグ

なし。 iSeries JSF 拡張機能内で、 振る舞いを使用します。

基本 HTML

<form> タグと接続している必要があります。

<input type="hidden" disabled="true" id="form-id:POST_LASTFIELD">
<input type="hidden" disabled="true" id="form-id:POST_LASTCURSOR">

JavaScript コンストラクター

hX_5.addBehavior("id", "oninput", new hX_5.JSFBehaviorTrack()); 各部の意味は次のとおりです。

id

コンポーネントが付加される HTML タグの ID。

サポートされるイベント

イベント

説明

oninput

特殊なイベント名の使用には注意してください。 この振る舞いにより、 すべてのキーボード・イベント・ハンドラー、 およびフォーカスとぼかしが変更されます。

順序付け

イベント用に指定された他のハンドラーのあとに、実行されます。 イベントを停止しません。

API 呼び出し

表 1. 追跡振る舞い API 呼び出し

API 呼び出し

説明

object = setAttribute(attribute)

属性を設定します。 属性がすでに設定されたものである場合は、 その値を変更します。

string = getAttribute(attribute-name)

属性の現行値を取得します。

制限

サンプル・コード

フォームをセットアップして、 そのフォーム内で最後にフォーカスされていた フィールドについての、フォーカス/カーソル情報を戻します。

<form id="form1">
	<input type="text" id="form1:text1" /><br>
	<input type="text" id="form1:text2" /><br>
	<select id="form1:menu1" name="form0:menu1" class="selectOneMenu" size="1">	
		<option value="Value0">One</option>
		<option value="Value1">Two</option>
		<option value="Value2">Three</option>
	</select>
	<input type="submit" value="Submit" id="form01:button1" name="form1:button1" />

	<input type="hidden" id="form1:POST_LASTFIELD" />	
	<input type="hidden" id="form1:POST_LASTCURSOR" />	
</form>
<script>
hX.addBehavior("form1", "oninput", new hX.JSFBehaviorTrack());
hX.onPageLoad();
</script>

フィードバック