JSF ajax和jQuery Mobile更新选择菜单

时间:2013-02-28 09:23:27

标签: jquery jsf jquery-mobile jsf-2

我正在使用JSF 2.0,jQuery 1.8.2和jQueryMobile 1.2.0

我有两个selectmenus,其中第二个菜单的源值取决于第一个selectmenu的选择(值由backing bean函数加载)。我的问题是当我在第一个选择菜单中选择选项时,我无法正确更新第二个选择菜单。

<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>

很明显,我想在更新后只显示菜单。 我尝试通过以下方式刷新第二个选择菜单:

$('#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" /&gt;呈现所有表单因为我在其他字段上有我不想刷新的字段。

请帮忙。

0 个答案:

没有答案