1

我有以下内容:

<select id="j_idt14:companyidCompany"  
        name="j_idt14:companyidCompany" size="1"     
        title="CompanyidCompany" onchange="mojarra.ab(this,event,'valueChange','j_idt14:companyidCompany',
               'j_idt14:locationnCollection')"> 
   <option value="">---</option>
   <option value="1">Nike</option>
   <option value="2">Adidas</option>
   <option value="3">Puma</option>
</select>

我需要我公司的名称。

var companyName = document.getElementById('j_idt14:companyidCompany').value;

这将返回选择元素在数组中的位置,但不返回名称。我怎样才能得到公司名称?

4

2 回答 2

1

从技术上讲,squint 的解决方案是可行的。但这是一个非常危险的想法,因为您永远不能依赖 JSF 实现自动生成的 id

必须做的是给封闭的 id 分配一个 id<h:form>,这是一个命名容器,就像在

<h:form id="form">

在这种情况下,您将拥有在执行 JavaScript 操作时始终可以依赖的<h:selectOneMenu>客户端 ID 。form:companyidCompany

另一种选择是prependId="false"在表单上使用,以便不会更改表单子项的客户端 ID:

<h:form prependId="false">

在这种情况下,您<h:selectOneMenu>将拥有准确的客户 ID companyidCompany

于 2013-05-05T17:02:55.720 回答
0
var select = document.getElementById('j_idt14:companyidCompany');

var company = select.options[select.selectedIndex].text;

虽然看起来传递的第一个参数是元素,这意味着如果您使用接收参数的参数,它可能会被缩短。

如果它被称为el,那么你会这样做:

var company = el.options[el.selectedIndex].text;
于 2013-05-05T03:38:25.103 回答