我正在创建一个动态表单,根据选择的单选按钮隐藏/取消隐藏字段。 我正在使用下面给出的普通javascript函数,它在我的门户环境中工作正常(ids是我通过查看源获得的JSF ID)。
function printHiddenValue(){
alert("hello");
alert(document.getElementById('A1938:j_idt4:create-ticket:hiddenId').value);
if(document.getElementById('A1938:j_idt4:create-ticket:j_idt19:0').checked){
alert("incident sellected")
} else
{
alert("change sellected")
}
}
但是当我在不同的环境中部署战争时失败,因为门户网站环境会生成不同的ID。
答案 0 :(得分:1)
您不应该依赖动态ID,而不仅仅是A1938
部分内容,如果您更改页面结构,j_idt4
也可能会更改。您应该为组件j_idt4
分配id,对于第一部分,您可以使用EL #{facesContext.externalContext.response.namespace}
来获取portlet的命名空间:
document.getElementById('#{facesContext.externalContext.response.namespace}:j_idt4:create-ticket:hiddenId')