在 xform 中捕捉箭头 up/down
Catch arrow up/down in xform
我如何捕捉用户在 Orbeon XForms 中按下向下或向上箭头的时间?
事件'up'和'down'没有被捕获,它们不是修饰符,我想不出要捕获什么文本。到目前为止的调用示例[=12=]
<xforms:action ev:event="keypress" ev:observer="#document" xxforms:modifiers="down">
...
</xforms:action>
看起来无法使用此 orbeon 的按键事件来完成。同样在 javascript 中,某些浏览器中的箭头键仅由 onkeydown 而不是 onkeypress 触发。
您可以将以下代码放入您的 xf:model 或 xforms:model 中(注意: 如果您的模型类似于 xforms:model ,这意味着您使用具有不同命名空间的版本,就像以前的 orbeon 版本一样,因此将 xf: 更改为 xforms: 并将 xxf: 更改为 xxforms:):
<xf:action ev:event="xforms-ready">
<xxf:script>function myKeydown(event) {
var key = event.charCode ? event.charCode : event.keyCode ? event.keyCode : 0;
switch (key) {
case 38:
ORBEON.xforms.Document.dispatchEvent({targetId: 'fr-form-model', eventName: 'up'});
YAHOO.util.Event.preventDefault(event);
break;
case 40:
ORBEON.xforms.Document.dispatchEvent({targetId: 'fr-form-model', eventName: 'down'});
YAHOO.util.Event.preventDefault(event);
break;
}
}
YAHOO.util.Event.addListener(document, "keydown", myKeydown);
</xxf:script>
</xf:action>
<xf:action ev:event="up">
<!-- Call something from here -->
<xf:action ev:event="down">
<!-- Call something from here -->
</xf:action>
如果要发送另一个事件,请按以下方式调用它:
ORBEON.xforms.Document.dispatchEvent({targetId: 'yourTargetId', eventName: 'yourEvent'});
或
ORBEON.xforms.Document.dispatchEvent("yourTargetId", "yourEvent");
注意: 根据您使用的 Orbeon 版本,可能需要将以下内容添加为 xf:model 属性:xxf:external-events= "up down"
我如何捕捉用户在 Orbeon XForms 中按下向下或向上箭头的时间?
事件'up'和'down'没有被捕获,它们不是修饰符,我想不出要捕获什么文本。到目前为止的调用示例[=12=]
<xforms:action ev:event="keypress" ev:observer="#document" xxforms:modifiers="down">
...
</xforms:action>
看起来无法使用此 orbeon 的按键事件来完成。同样在 javascript 中,某些浏览器中的箭头键仅由 onkeydown 而不是 onkeypress 触发。
您可以将以下代码放入您的 xf:model 或 xforms:model 中(注意: 如果您的模型类似于 xforms:model ,这意味着您使用具有不同命名空间的版本,就像以前的 orbeon 版本一样,因此将 xf: 更改为 xforms: 并将 xxf: 更改为 xxforms:):
<xf:action ev:event="xforms-ready">
<xxf:script>function myKeydown(event) {
var key = event.charCode ? event.charCode : event.keyCode ? event.keyCode : 0;
switch (key) {
case 38:
ORBEON.xforms.Document.dispatchEvent({targetId: 'fr-form-model', eventName: 'up'});
YAHOO.util.Event.preventDefault(event);
break;
case 40:
ORBEON.xforms.Document.dispatchEvent({targetId: 'fr-form-model', eventName: 'down'});
YAHOO.util.Event.preventDefault(event);
break;
}
}
YAHOO.util.Event.addListener(document, "keydown", myKeydown);
</xxf:script>
</xf:action>
<xf:action ev:event="up">
<!-- Call something from here -->
<xf:action ev:event="down">
<!-- Call something from here -->
</xf:action>
如果要发送另一个事件,请按以下方式调用它:
ORBEON.xforms.Document.dispatchEvent({targetId: 'yourTargetId', eventName: 'yourEvent'});
或
ORBEON.xforms.Document.dispatchEvent("yourTargetId", "yourEvent");
注意: 根据您使用的 Orbeon 版本,可能需要将以下内容添加为 xf:model 属性:xxf:external-events= "up down"