我有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 /

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top