【问题标题】:ZK methode call when enter pressed按下回车时调用 ZK 方法
【发布时间】:2013-03-02 13:52:21
【问题描述】:

我在 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
        }
}

提前致谢。

【问题讨论】:

    标签: textbox onchange zk


    【解决方案1】:

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

    ZK 文档讨论了细节here

    使用GenericForwardComposer,您可以像这样定义一个事件监听器:

    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" />
    

    【讨论】:

      【解决方案2】:

      试试这个,

      <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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-12
        • 2013-02-04
        • 1970-01-01
        • 2015-08-22
        • 1970-01-01
        • 2011-04-25
        • 1970-01-01
        相关资源
        最近更新 更多