禁用wicket中的输入文本

hud*_*udi 2 java wicket

我有两个输入文本的hml表单

<input type="text" wicket:id = "query"/> 
<input type="text" wicket:id= "address"/>
Run Code Online (Sandbox Code Playgroud)

我需要实现选择机制.当有人开始编写查询时,地址应该被禁用,反之亦然.

mag*_*omi 6

向侦听onChange事件的查询文本字段添加行为.在该onEvent方法中,禁用地址文本字段并将其添加到ajax请求目标.

请参阅此示例,了解如何添加行为以及如何禁用其他组件.请记住,如果必须启用或禁用其他组件,您可以添加一些检查.

queryTextField.add(new AjaxEventBehavior("onKeyUp") {
        @Override
        protected void onEvent(AjaxRequestTarget target) {
            addressTextField.setEnabled(false);
            target.add(addressTextField);        
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

  • 如果在执行onEvent()之后删除Ajax行为将会很好,因为它将为每个keyUp事件触发. (3认同)
  • 唯一的问题是当字段失去焦点时会触发onChange(在大多数浏览器中?).当我读到它时,他喜欢其他字段在打字时立即禁用.你不觉得Ajax增加了一点开销吗?我想要我的GUI响应:) (2认同)
  • 随着Wicket核心成为Wicket核心不可或缺的一部分,Wicket 6将变得轻而易举 (2认同)