我有一个附带模型的RadioChoice组件。无线电选择与布尔字段相关联,因此我必须使用单选按钮(是/否)。我的问题是,当页面呈现时,无按钮会被预选,因为布尔字段设置为false。有没有办法防止这种情况发生,因为我不想有预先选择的值。
非常感谢任何想法。
谢谢!
答案 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;
}