我正在尝试制作一个 Facelet,其中有两行,每行包含两个单选按钮。我想这样做,如果在第一行中选择了第一个单选按钮,则应该选择第二行中的第二个单选按钮,反之亦然。我正在尝试使用 JavaScript,但更改仍未反映在浏览器中。
这是Javascript:
<script type="text/javascript">
function radioSelect(val){
if(val.id == "encrypted:1")
{
document.getElementById("protected:0").value = "false";
document.getElementById("protected:1").value = "true";
}
else
{
document.getElementById("protected:0").value = "true";
document.getElementById("protected:1").value = "false";
}
}
</script>
这是我的 Facelet 文件中的一段代码:
<h:selectOneRadio id="encrypted"
value="#{uploadFileBean.encryption}" onclick="radioSelect(this);">
<f:selectItem itemLabel="Yes" itemValue="true"></f:selectItem>
<f:selectItem itemLabel="No" itemValue="false"></f:selectItem>
</h:selectOneRadio>
<h:selectOneRadio id="protected"
value="#{uploadFileBean.fileprotected}">
<f:selectItem itemLabel="Yes" itemValue="true"></f:selectItem>
<f:selectItem itemLabel="No" itemValue="false"></f:selectItem>
</h:selectOneRadio>
好吧,当我尝试编写此 JavaScript 函数时,Ajax 更改不起作用。
<script type="text/javascript">
function radioSelect(val){
if(val.id == "encrypted:1")
{
document.getElementById("protected:0").value = "false";
document.getElementById("protected:1").value = "true";
}
if(val.id == "protected:1")
{
document.getElementById("encrypted:0").value = "false";
document.getElementById("encrypted:1").value = "true";
}
if(val.id == "encrypted:0")
{
document.getElementById("protected:0").value = "false";
document.getElementById("protected:1").value = "true";
}
if(val.id == "protected:0")
{
document.getElementById("encrypted:0").value = "true";
document.getElementById("encrypted:1").value = "false";
}
}
</script>