题
我有JSF代码如下:
<h:inputText id="from" value="#{fromToMBean.fromName}"/>
我想通过ID(from
),以获得从JavaScript该元件中,但我不能,因为在生成的HTML它是j_idt8:from
我怎样才能获得在例如该元素jQuery的?有没有什么办法来强制JSF2不改变ID?
解决方案
您可以使用一个自定义类,你只能分配到这个元素,并使用CSS选择或分配一个ID的形式,并与ID formid:from
得到的元素。
其他提示
有没有办法强迫JSF2不改变ID?
可以设置prependId="false"
这种方式在生成的HTML它将的从强>就位的 j_idt8的:从强>
<强> prependId:强>标志指示是否该形式应当预先考虑 其ClientID的生成期间ID到其后代的id 处理。如果未设置该标志,则缺省值为true。
我怎样才能获得在例如该元素jQuery的?
您可以使用ancestorComponent:from
jQuery中得到这个元素。
实际上的 j_idt8 强>在的 j_idt8:从强>是<h:inputText/>
的祖先成分的自动生成的ID
例如
<h:form id="form">
<h:inputText id="from" value="#{fromToMBean.fromName}"/>
</h:form>
输入文本的现在生成的ID将是的形式:从强>
如果你不给浏览器以外的一个组件提供身份证生成动态。所以,不要忘记提供IDS到组件。
在JSF 1.2可以使用forceId = “真”。我不知道是否可以使用T:输入在JSF 2,但你应该可以。然后,它在HTML ID将是你所期望的。
为了实现充分的ID为一个组件,使用EL隐对象和它们的性质如#{cc.clientId}
和#{component.clientId}
。来源:获取用于组件的clientId充分前缀内使用JSF 2.0 的命名容器。
可以使用jquery。简单地说,使用选择定义它应包含的文本。是这样的:
$( "input[name*='from']" )
<强>“* =” 强>用于说,名称属性包含一些串。还存在的 '〜='强>具有相似的含义。
有关详细的解释和例子访问 http://api.jquery.com/attribute-contains -selector /