如何访问选项标签

时间:2013-05-05 03:32:24

标签: javascript html

我有以下内容:

<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;

这将返回select元素的Array中的位置,但不返回名称。我如何获得公司名称?

2 个答案:

答案 0 :(得分:1)

从技术上讲,斜视的解决方案是有效的。但这是一个非常危险的想法,因为你永远不能依赖JSF实现自动生成的ID

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

中一样
<h:form id="form">

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

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

<h:form prependId="false">

在这种情况下,您的<h:selectOneMenu>客户ID将完全为companyidCompany

答案 1 :(得分:0)

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

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

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

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

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