在启用和禁用之间更改文本字段

问题描述:

我有2个单选按钮和1个TextField,现在我想在启用和禁用TextField之间进行更改。如果选择radioFindText,则必须启用TextField,否则必须禁用它。我正在尝试使用这样的代码,但它不起作用,并且我正在用尽可能的解决方案。看起来,SelectionChanged方法从来没有被调用,为什么?在启用和禁用之间更改文本字段

编辑 好的我终于找到了一个解决方案,也许这是显而易见的工作在检票口一段时间,但对于我的第一个项目,我发现很难解决它。这是工作代码。

searchedText.setOutputMarkupId(true); 
    RadioGroup group = new RadioGroup("group", selected); 
    group.setOutputMarkupId(true); 
    Radio radioErrors = new Radio("errors", new Model<String>("ERRORS")); 
    Radio radioFindText = new Radio("text", new Model<String>("Find text")); 
    group.add(radioFindText.add(new AjaxEventBehavior("onchange") { 
     @Override 
     protected void onEvent(AjaxRequestTarget art) { 
      searchedText.setEnabled(true); 
      art.add(searchedText); 
     } 
    })); 
    group.add(radioErrors.add(new AjaxEventBehavior(("onchange")) { 
     @Override 
     protected void onEvent(AjaxRequestTarget art) { 
      searchedText.setEnabled(false); 
      art.add(searchedText); 
     } 
    })); 
    group.add(searchedText); 
    form.add(group); 

它是一个很长一段时间,因为我编写的小门,但也许你可以这样做:

radioGroup.add(新AjaxFormSubmitBehavior( “平变化”){公共无效 的onsubmit(AjaxRequestTarget目标){ ...}}

我猜你需要它来获取“的onchange” - 通知

+0

谢谢您的回答,但我不希望从提交,然后更改文本字段,但我想马上做,所以当这个单选按钮被选中,然后文本框是自动的启用。 – wawek

+0

你尝试过吗?我真的希望你会在用户改变值后立即得到这个通知......其他的事情是,你实际上得到了什么:“group.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(1)));” ?我的意思是你应该从它那里得到某种通知? – JohnnyAW

+0

是的,我试过了,什么都没有发生。我正在使用这种自动更新,因为我认为它会刷新和更新无线电中的选择。 – wawek