1

JSF 2.0、jQuery 1.8.2、および jQueryMobile 1.2.0 を使用しています

2 番目のメニューのソース値が最初の selectmenu の選択に依存する 2 つの selectmenu があります (値はバッキング Bean 関数によってロードされます)。私の問題は、最初の選択メニューでオプションを選択したときに、2 番目の選択メニューを正しく更新できないことです。

<h:form id="testForm" prependId="false">
 <h:selectOneMenu id="testValues" value="#{model.testValue}" >
            <f:selectItems
                value="#{bean.getTestValues()}"
                var="object"
                itemLabel="#{object.label}"
                itemValue="#{object.value}" />
            <f:ajax render="testValues2" onevent="initForm"/>
        </h:selectOneMenu>
 <h:selectOneMenu id="testValues2" value="#{model.testValue2}">
          <f:selectItems
                value="#{bean.getTest2Values(model.testValue)}"
                var="object2"
                itemLabel="#{object2.label}"
                itemValue="#{object2.value}" />
 </h:selectOneMenu>
</h:form>
<script type="text/javascript">
  function initForm(){
    $("#testForm").trigger('create');

    };
     </script>

そうすると、testValues2メニューが正しく作成されません。そんな感じ:

<div class="ui-select"> <!-- menuselect before update... -->
     <div>...</div> <!-- here is selected option from testValues2 before update -->
    <div class="ui-select">...</div> <!-- menu with updated values-->
</div>

更新後にメニューのみを正しく表示したいのは明らかです。次の方法で2番目のselectmenuを更新しようとしました:

$('#testValues2').selectmenu('refresh');

また

$('#testValues2').selectmenu();
$('#testValues2').selectmenu('refresh');

しかし、それは役に立ちませんでした (エラーが発生しましたError: cannot call methods on selectmenu prior to initialization; attempted to call method 'refresh':)

<f:ajax render=":testForm"また、更新したくない他のフィールドがフォームにあるため、/> ですべてのフォームをレンダリングすることはできません。

助けてください。

4

0 に答える 0