0

zkにテキストボックスがあります。タブを押した場合、onChanged イベントを呼び出します。Enterキーを押したときに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 のドキュメントで説明しています

を使用すると、GenericForwardComposer次のようにイベント リスナーを定義できます。

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

(ZK 6.0 で導入された) を使用するSelectorComposerと、次のようにイベント リスナーを定義できます。

@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 に答える