4

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

任何想法都非常感谢。

谢谢!

4

3 回答 3

3

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

于 2012-05-16T08:33:56.803 回答
0

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

@Override
protected boolean isSelected(Boolean object, int index, String selected) {
    return false;
}
于 2015-04-14T11:55:21.663 回答
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
        }

});
于 2012-07-10T11:53:01.227 回答