キー・バインドの振る舞い

コンテナー・オブジェクト (フォームなど) のスコープ内で、 ファンクション・キーまたは制御キーを、 アクション、関数、またはその両方とバインドします。 ファンクション・キーまたは制御キーを押すと、 アクション、関数、またはその両方が呼び出されます。

キー・バインド振る舞いを使用すると、 キーボードのフォーカスがコンポーネント内にある場合、 またはコンポーネント内の任意のコンポーネント内にある場合に、 ファンクション・キーまたは制御キーが押されるたびに、 アクションまたは JavaScript™ 関数を 実行させることができます。 バインドのスコープは、 その振る舞いが割り当てられるタグの種類によって異なります。 form、div、body などのコンテナー・タグに、 この振る舞いがバインドされている場合、 キーボードのフォーカスがコンテナー内にあれば、 キーが押されるたびにアクション/関数が実行されます。 入力タグのような非コンテナー・タグに、 この振る舞いがバインドされている場合、 そのタグがキーボードのフォーカスを持っている場合にのみ、 バインドが適用されます。

指定されたキーが押されると、 関数 (提供されている場合) が実行されます。 アクション (またはアクションのリスト) が提供されている場合は、 次にアクションが実行されます。 関数とアクションの両方が提供されている場合、 その関数が false を戻すことによって、 アクションの実行を妨げることができます。 どちらのケースでも、 キーの「デフォルトの」振る舞いは、 実行「しない」になっています。 例えば、F1 キーがバインドされている 場合、F1 キーが押されても、 ヘルプを表示するという ブラウザーのデフォルトの振る舞いは起こりません。

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

<hx:behaviorKeyPress>

基本 HTML

任意の HTML コンテナー・ タグ (<form><div> など)、 またはキーボード入力を受け入れる 任意の HTML タグ (<input> など)。

複数のキー・バインドを 1 つのタグに付加することができます。

JavaScript コンストラクター

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

id

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

属性

コンマで区切られた属性のリスト。 各属性は、属性名と値から成る引用符付きストリングになっており、 コロンで区切られています (例: "label:MyLabel")。

サポートされるイベント

イベント

説明

onkeydown

キー・ダウン・イベントにのみ (キー・プレスや キー・アップではなく)、振る舞いが付加されます。

属性

表 1.

属性名

説明

keycode

キーを表す (10 進) 数 (例えば、112 はファンクション・キー 1 になります)。

modifier

そのキーと一緒に押す必要がある修飾キー (例えば SHIFT + F1)。

action

クリック可能なエンティティーを クリックしたときに実行されるアクション (またはアクションのセット)。 通常は、アクションのターゲット (またはターゲットのセット) が 必要になります。

target

ページ内の「input type='text'」フィールド の ID (このフィールドが提供されている場合)。 メニューで何かが選択されている場合は、 指定されたフィールドの値として、 メニュー項目のテキストが必ず設定されます。 通常、コンボ・ボックスをエミュレートする ポップアップ・メニューを作成する場合にのみ、 この属性が使用されます。 例えば、入力フィールドに隣接するメニューがあり、 メニューの最上位が単一のボタンになっているとします。 このボタンをクリックしてメニューを表示し、 そのメニューから項目を選択して、 入力フィールドの値を設定するような場合には、 この属性を使用してください。

function

キーを押したときに 実行される JavaScript 関数 (また は JavaScript の インライン・ストリング)。

順序付け

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

すべてのアクション/関数が実行されたあとに、 続行中/バブル中のイベントを停止します。

API 呼び出し

表 2. キー・バインド振る舞い API 呼び出し

API 呼び出し

説明

object = setAttribute(attribute)

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

string = getAttribute(attribute-name)

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

制限

キー・バインドは、onkeydown イベントでのみ使用でき、 英数字以外のキーにのみ使用できます。

サンプル・コード

フォーム内で、 次のフィールドへ進む動作に F1 キーをバインドし、 前のフィールドに戻る動作に Shift F1 キーをバインドします。 タブ・キーは使用不可にします。

hX.addBehavior("form1", "onkeydown", new hX.JSFBehaviorKeybind ("keycode:112", "modifier:Shift", 
                 "action:prevTab"));
hX.addBehavior("form1", "onkeydown", new hX.JSFBehaviorKeybind ("keycode:112", 
                 "action:nextTab"));
hX.addBehavior("form1", "onkeydown", new hX.JSFBehaviorKeybind ("keycode:9", "modifier:Shift", 
                 "action:nothing"));
hX.addBehavior("form1", "onkeydown", new hX.JSFBehaviorKeybind ("keycode:9", 
                 "action:nothing"));

フィードバック