【发布时间】:2010-12-17 03:40:27
【问题描述】:
我在 JSF selectManyCheckbox 和 A4J 支持方面遇到了问题。目的是在选中复选框时运行一些操作。这在 Firefox 中完美运行。然而,在任何 IE (ie6 / ie7 / ie8) 中进行测试时,发现正在调用该操作,但所选值被置为 null。只是为了测试它,我放置了一个 JSF commandButton 来提交表单并检查选择的值是否正确。所以问题实际上出在 ajax 操作中(没有提交表单)。 这是我的代码:
<h:selectManyCheckbox id="supportCategoryCardFilter" value="#{cardListProvider.categoriesHolder.selectedCategories}" layout="pageDirection" required="false" >
<f:selectItems value="#{cardListProvider.categoriesList}" />
<a:support ajaxSingle="true" status="statusSearchCard" id="supportCategoryCardFilter2" event="onclick" reRender="cardsHolder, renderCardsCategoriesPanel"
action="#{cardListProvider.findCards(cardListProvider.categoriesHolder.selectedCategories)}" >
</a:support>
</h:selectManyCheckbox>
其中cardListProvider.categoriesList 是List<SelectItem> 而cardListProvider.categoriesHolder.selectedCategories 是List<String>
有人遇到过这个问题吗?谁能帮我这个? 谢谢
【问题讨论】:
-
经过更多调试后,我注意到当我在 Firefox 中单击复选框而不在 IE 中单击复选框时,正在设置 selectManyCheckbox 值(value="#{cardListProvider.categoriesHolder.selectedCategories}")!只提交表格!看不懂……
-
检查您没有嵌套表单。它可能会导致这种行为。
-
伙计,就是这样...我们进行了巨大的重新设计,在中间我的一位同事将表单包含在表单中...我们在其他 .xhtml 中包含了很多 .xhtml很难注意到!非常感谢!我不明白为什么它在Firefox中工作!谢谢
-
您好,我遇到了类似的问题...在我的情况下,在单击事件上,ajax 仅设置支持 bean 中第一个选定复选框的值。没有嵌套形式。知道可能出了什么问题吗?