4

モデルがアタッチされたRadioChoiceコンポーネントがあります。ラジオの選択はブールフィールドに関連付けられているため、ラジオボタンを使用する必要があります(はい/いいえ)。私の問題は、ブールフィールドがfalseに設定されているため、ページのレンダリング時にnoボタンが事前に選択されることです。事前に選択した値が必要ないため、これを防ぐ方法はありますか。

どんなアイデアでも大歓迎です。

ありがとうございました!

4

3 に答える 3

3

HTMLの観点から、事前に選択されたラジオ値を省略することはお勧めしません(http://www.w3.org/TR/html401/interact/forms.html#radioを参照)。また、ユーザーが誤って1つをクリックした場合にラジオグループ内のすべての値の選択を解除する方法がないため、ユーザーにとってはかなり苛立たしいものです。おそらくUIを再考する必要があります-3番目の「不明」オプションの余地はありますか?

于 2012-05-16T08:33:56.803 に答える
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 に答える
0

ブール値ではなくプリミティブを使用する場合は、RadioChoiceでisSelectedをオーバーライドできます。

@Override
protected boolean isSelected(Boolean object, int index, String selected) {
    return false;
}
于 2015-04-14T11:55:21.663 に答える