我们有一个使用 JSF 2、OpenFaces、jQuery 和 Uniform 插件的应用程序。有一个表单有一个选择框,其中包含根据另一个选择框的值动态填充的选项。我们正在使用 JSF 2 f:ajax 标记来触发选择框的重新填充。
这是触发 ajax 调用的框:
<h:selectOneMenu id="applicant-employmentStatus-civilian"
value="#{membershipData.civilianEmploymentStatus}">
<f:selectItems value="#{lookup.civilianEmploymentOptions }"/>
<f:ajax event="change"
render="applicant-eligibility-base applicant-eligibility-ship applicant-eligibility-govtAgency"
onevent="ajaxCallback"/>
<o:validateCustom clientFunction="return validateEligibilityField(input.id);"
summary=""
detail="#{msgs['errormesg.eligibility.employment']}" />
</h:selectOneMenu>
此调用填充了其他 3 个选择框。
该页面还使用 Uniform 插件来装饰所有表单输入。在 document.ready() 函数上,调用以下内容进行配置:
$('select, input:text, input:radio').uniform();
问题是,当在 Ajax 调用之后呈现 3 个选择框时,它们“失去”装饰并在 FF、Chrome 等中变得不可用。在 IE 中,未格式化的选择框被放置在旧的选择框上。我尝试在 ajaxCallback 函数中调用 uniform() 函数,但它不起作用。
任何帮助表示赞赏