我有以下内容:
<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中的位置,但不返回名称。我如何获得公司名称?
答案 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;