Wicket RadioChoice默认选中

时间:2012-05-16 08:29:59

标签: radio-button wicket

我有一个附带模型的RadioChoice组件。无线电选择与布尔字段相关联,因此我必须使用单选按钮(是/否)。我的问题是,当页面呈现时,无按钮会被预选,因为布尔字段设置为false。有没有办法防止这种情况发生,因为我不想有预先选择的值。

非常感谢任何想法。

谢谢!

3 个答案:

答案 0 :(得分:3)

从HTML的角度来看,不建议省略预先选择的无线电值(请参阅http://www.w3.org/TR/html401/interact/forms.html#radio)。这对用户来说也是相当恼人的,因为如果他/她不小心点击了一个,就无法取消选择广播组中的所有值。您可能应该重新考虑您的用户界面 - 第三个“未知”选项是否还有空间?

答案 1 :(得分:0)

因为您的RadioChoice组件附有模型;当你写作 yourRadioChoice.getValue()您总是得到您的模型值而不是更新值。为防止这种情况,您可以使用临时变量。

yourRadioChoice.add(new AjaxFormChoiceComponentUpdatingBehavior () {

    private static final long serialVersionUID = 1662824638126944259L;          

    @Override
    protected void onUpdate(AjaxRequestTarget target) {  
                   // you can get current value here and set to your temporary variable
                   // then use anywhere
        }

});

答案 2 :(得分:0)

如果您不使用布尔值,而是使用原语,那么您可以在RadioChoice中覆盖isSelected:

@Override
protected boolean isSelected(Boolean object, int index, String selected) {
    return false;
}