フォームが送信される前に、 フォーム内のどのフィールド (フォーム送信用のボタン (存在する場合) を除く) が フォーカスされていたかを追跡します
この振る舞いは、属性を持ちません。 代わりに、特殊名を持つフォーム内の隠しフィールドを検索します。 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 も、 正しく作動しない可能性があります。
なし。 iSeries JSF 拡張機能内で、 振る舞いを使用します。
<form> タグと接続している必要があります。
<input type="hidden" disabled="true" id="form-id:POST_LASTFIELD"> <input type="hidden" disabled="true" id="form-id:POST_LASTCURSOR">
hX_5.addBehavior("id", "oninput", new hX_5.JSFBehaviorTrack()); 各部の意味は次のとおりです。
id |
コンポーネントが付加される HTML タグの ID。 |
イベント |
説明 |
---|---|
oninput |
特殊なイベント名の使用には注意してください。 この振る舞いにより、 すべてのキーボード・イベント・ハンドラー、 およびフォーカスとぼかしが変更されます。 |
イベント用に指定された他のハンドラーのあとに、実行されます。 イベントを停止しません。
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>