0

私には2つのラジオボタンがあり、デフォルトでは誰も選択されていません。そのうちの1つを選択する必要があるので、次のようにしました。

   <div id="payment_method">
     <h:message for="sel_payment_method" style="Color:red;"/>
     <h:selectOneRadio id="sel_payment_method" required="true" requiredMessage="Please select a payment method" value="#{myBean.selectedPaymentMethod}">  
       <f:selectItem itemLabel="Debit or Credit Card" itemValue="credit" />  
       <f:selectItem itemLabel="Checking Account" itemValue="checking" />
       <f:ajax event="change" render="credit_inputs_fragment checking_inputs_fragements" />             
     </h:selectOneRadio>
    </div>

プロパティはselectedPaymentMethod文字列であり、デフォルト値はnullです

credit_inputs_fragmentは、divを含むui: fragementです。

問題:ラジオボタンをクリックしても、変更される2つのフラグメントは影響を受けません。

アドバイスしてください、ありがとう。

4

2 に答える 2

8

具体的な問題の説明は完全には明確ではありませんが、これまでに投稿されたコードには、少なくとも2つの潜在的な問題があります。

  1. ラジオボタンとチェックボックスの<f:ajax event="change">場合は間違っています。する必要がありますevent="click"。または、完全に削除することをお勧めします。デフォルトではすでに正しいものになっています。f:ajaxタグのイベント属性に渡すことができる値も参照してください。

  2. で参照されるコンポーネント<f:ajax render>は、十分な価値のあるJSF UIコンポーネントである必要があり、常にクライアント側にレンダリングされます。コンポーネント自体がHTMLにレンダリングされない場合、JavaScriptはコンテンツを更新するためにコンポーネントを見つけることができません。基本的に、常にレンダリングされる別のコンポーネントに条件付きでレンダリングされるコンポーネントが必要です。ajax-updateするときに、rendered = "#{some}"のコンポーネントを別のコンポーネントにネストする必要があるのはなぜですか?も参照してください。

于 2012-10-04T00:10:21.207 に答える
0

次のリンクのサンプルコードをたどると、問題が解決しました。

JSF:フォームを動的に変更する

于 2012-10-03T22:14:45.210 に答える