0

我在 zk 中有一个文本框。如果我按下选项卡调用 onChanged 事件。按下回车键时调用 onChange 事件需要做什么?目前,当我按 Enter 时,根本没有发生任何事情。

<textbox id="inputWord" width="200px" apply="com.wb.controlers.WBControler" />

WBControler.java(扩展 GenericForwardComposer)

public void onChange$inputWord(Event event) throws Exception {
        Component c = event.getTarget();
        if (c instanceof Textbox) {
            wordTextbox = (Textbox)c;
        }
        if (wordTextbox != null) {
          // do something
        }
}

提前致谢。

4

2 回答 2

2

Enter键触发 ZK 中的事件onOK('O' 和 'K' 都是大写的)。

ZK 文档在这里讨论了细节。

使用 aGenericForwardComposer您将定义一个事件侦听器,如下所示:

public void onOK$inputWord(Event event) {
    // do something
}

使用SelectorComposer(在 ZK 6.0 中引入)你可以像这样定义你的事件监听器:

@Listen(Events.ON_OK + " = #inputWord")
public void onEnterPressed(Event event) {
    // do something
}

如果您想为多个事件执行单个代码,请查看Event Forwarding。例如..

// in your controller
@Listen("onQuery = #inputWord")
public void onQuery(Event event) {
    // do something
}

// in your zul file
<texbox id="inputWord" forward="onOK=onQuery, onChange=onQuery" />
于 2013-03-02T15:15:57.910 回答
0

试试这个,

<script>
    <![CDATA[

    $( window ).load(function() { 
    if(document.getElementsByClassName('textboxLogin')[0]!=null){
    document.getElementsByClassName('textboxLogin')[0].addEventListener('keyup',
    onKeyUpAcces, false); }


    if(document.getElementsByClassName('textboxLogin')[1]!=null){
        document.getElementsByClassName('textboxLogin')[1].addEventListener('keyup',
        onKeyUpAcces, false); }

    });


    function onKeyUpAcces(e) {
        console.log('onkeyUp');
        if (e.keyCode == 13) {
            if(document.getElementById('f')!=null){
                document.getElementById('f').submit();
            }
        }
    }

    ]]>
</script>
于 2016-04-12T09:03:11.550 回答