我有以下JSF代码:
<p:selectOneRadio id="contactPersonGender" value="#{myBean.contactPersonGender}">
<f:selectItems value="#{data.getGenders()}" var="gender" itemValue="#{gender}" itemLabel="#{gender.label}" />
</p:selectOneRadio>
<p:commandButton onclick="copyFromContactToManager();" ajax="false" type="button" update="@form"/>
<p:selectOneRadio id="managerGender" value="#{myBean.managerGender}">
<f:selectItems value="#{data.getGenders()}" var="gender" itemValue="#{gender}" itemLabel="#{gender.label}" />
</p:selectOneRadio>
我现在想在单击按钮时将选择从 contactPersonGender 复制到 managerGender。data.getGenders() 返回枚举类型“性别”(MALE 或 FEMALE)的数组。因此,例如,当在 contactPersonGender 中选择 FEMALE 时,当单击按钮时 managerGender 也应该选择 FEMALE。
我尝试了以下代码:
function copyFromContactToManager(){
$("input[id^='" + contactPersonGender + "']").each(function(index, element) {
if ($(element).prop("checked")) {
$("input[id^='managerGender:" + index + "']").first().click();
}
});
}
或者:
function copyFromContactToManager(){
$("input[id^='" + contactPersonGender + "']").each(function(index, element) {
$("input[id^='managerGender:" + index + "']").prop("checked", $(element).prop("checked"));
}
}
它们都可以工作,但是在单击我的按钮后 UI 没有更新(例如,如果在 contactPersonGender 中选择了“MALE”并且在 managerGender 中选择了“FEMALE”,则在单击 managerGender 中的按钮后“FEMALE”似乎仍然被选中。但如果我将表单发送到服务器并保存数据,managerGender 的预期值为“MALE”)。