Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 禁用wicket中的输入文本_Java_Wicket - Fatal编程技术网

Java 禁用wicket中的输入文本

Java 禁用wicket中的输入文本,java,wicket,Java,Wicket,我有两个输入文本的hml表单 <input type="text" wicket:id = "query"/> <input type="text" wicket:id= "address"/> 我需要实现选择机制。当有人开始写查询时,地址应该是禁用的,反之亦然 我将向两个字段添加一个行为,当通过JavaScript触发onkeup事件时,禁用/启用另一个字段。您可以使用: myTextField.add(AttributeModifier.replace("re

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

<input type="text" wicket:id = "query"/> 
<input type="text" wicket:id= "address"/>


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

我将向两个字段添加一个行为,当通过JavaScript触发onkeup事件时,禁用/启用另一个字段。

您可以使用:

myTextField.add(AttributeModifier.replace("readonly", "readonly"));

当然,
“readonly”
应该根据代码中的一些条件来确定。

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

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

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

唯一的问题是onChange(在大多数浏览器中?)在字段失去焦点时被触发。正如我读到的,他喜欢另一个字段在键入时立即禁用。你不认为Ajax会增加一些开销吗?我想要我的GUI响应:)@verhage-谢谢你的提示。onChange是错误的事件。我将其更改为OnKeyUp,这将是Wicket 6的一件轻而易举的事,因为WiQuery核心成为Wicket核心的一个组成部分:)您可能还对捕获事件感兴趣。如果您在执行OneEvent()后删除Ajax行为会很好,因为它将为每个keyUp事件触发。