键绑定行为

在诸如表单之类的容器对象的作用域中,将功能键或控制键与操作和/或函数绑定。按下该功能键/控制键时,将调用该操作和/或函数。

键绑定行为的作用是:当键盘焦点在某个组件或者该组件中的任何组件中,每当按下某个功能键或控制键时,执行操作或 JavaScript™ 函数。绑定作用域取决于该行为的相关标记的类型。如果将该行为与诸如 form、div 或 body 之类的容器标记绑定,则每当键盘焦点在该容器中,并且该键被按下时,都将运行该操作/函数。如果将该行为与诸如 input 标记之类的非容器标记绑定,则仅当该标记带有键盘焦点时,才会应用该绑定。

如果提供了该函数,则当指定的键被按下时,将执行该函数。如果提供了操作或操作列表,则接着将执行那些操作。如果同时提供了函数和操作,则该函数可以通过返回 false 来禁止执行该操作。在这两种情况下,都不会执行该键的“缺省”行为。例如,如果绑定了 F1 键,则按下 F1 键时,不会执行缺省浏览器行为“显示帮助”。

发送组件的 JSF 标记

<hx:behaviorKeyPress>

基本 HTML

诸如 <form><div> 之类的任何 HTML 容器标记或者诸如 <input> 之类的任何接受键盘输入的 HTML 标记。

可以将多个键绑定连接到一个标记。

JavaScript 构造函数

hX_5.addBehavior("id", "onkeydown", new hX_5.JSFBehaviorKeybind(attributes)); 其中

id

组件所连接至的 HTML 标记的 ID。

属性

逗号分隔的属性列表,其中每个属性都是一个加引号的字符串,此字符串包含使用冒号分隔的属性名称和值,例如,"label:MyLabel"。

受支持的事件

事件

描述

onkeydown

该行为只能连接到 keydown 事件,不能连接到 keypress 或 keyup 事件。

属性

表 1.

属性名称

描述

keycode

该(十进制)数字表示按键,例如,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 键,使 F1 键的作用是前进到下一个字段,并使 Shift F1 键的作用是前进到上一个字段。禁用 Tab 键。

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"));

反馈