我在zk框架中有一个文本框和一个带有upload = true属性组件的按钮,我想控制文本框的值(无论是否为空),然后弹出上载对话框。我尝试根据值禁用和启用按钮在文本框上的onChange事件。问题是在单击其他位置之前未启用/禁用按钮。那就是如果我在文本框中写一些文本,然后单击按钮,它仍然保持禁用状态。第二次单击后,它被激活。

最佳答案

您应该使用onChanging而不是onChange。另外,只有ZK端解决方案可以正常工作,而ZK + Java端解决方案则无法满足您的要求。

ZK-Side解决方案(工作)

<zk>
  <textbox>
    <attribute name="onChanging">
      if ( event.getValue().length() > 0 )
        but.setDisabled( false );
      else
        but.setDisabled( true );
    </attribute>
  </textbox>
  <button id="but" disabled="true" upload="true,maxsize=300" label="Up" />
</zk>


ZK + Java解决方案(无法正常工作)

ZK

<window title="Hello World!!" border="normal" width="200px" apply="com.UploadFile">

<textbox id="value" />

<button id="but" disabled="true" upload="true,maxsize=300" label="Up" />

</window>


爪哇

public class UploadFile extends GenericForwardComposer<Window> {

    private static final long serialVersionUID = 1L;

    private Textbox value;
    private Button but;

    public void onChanging$value() {
        if ( value.getValue().length() > 0 )
            but.setDisabled( false );
          else
            but.setDisabled( true );
    }

    public void onClick$but() {
        alert(value.getValue());
    }
}

关于java - zk-文件上传之前的Java文本框验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15840216/

10-11 12:37