0

我正在创建一个动态表单,它根据单选按钮的选择隐藏/取消隐藏字段。我正在使用下面给出的普通 javascript 函数,该函数在我的门户环境中运行良好(id 是我通过查看源获得的 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。

4

1 回答 1

1

您不应该依赖动态 id,不仅是 id 的一部分,而且如果您更改页面的结构,A1938也可能会发生变化。j_idt4您应该将 id 分配给 component j_idt4,并且对于第一部分,您可以使用 EL#{facesContext.externalContext.response.namespace}来获取 portlet 的命名空间:

document.getElementById('#{facesContext.externalContext.response.namespace}:j_idt4:create-ticket:hiddenId')
于 2013-03-22T08:06:40.987 回答