在JSF </h:inputhidden>中的<h:inputhidden>上设置类或ID

时间:2013-11-01 08:45:56

标签: class jsf input hidden

我正在尝试在JSF中的<h:inputHidden>上设置class或id参数。代码如下所示:

<h:inputHidden value="#{getData.name}" class="targ" />

但是在浏览器中,没有设置类:

<input type="hidden" name="j_idt6" value="j_idt6">

我需要为这个参数设置一个类,因为我有<h:inputText>的JavaScript自动完成函数,它在隐藏输入中设置一个值,需要在下一页中传递。

有什么想法吗?谢谢!

4 个答案:

答案 0 :(得分:6)

我知道它有点晚了,但它可以帮助将来的某个人。 由于inputHidden在浏览器中没有显示任何内容,因此无法让它拥有一个类。 您可以使用Id,但是当您更改使用它的父组件时,Id可能会发生变化会带来一些麻烦。

我建议作为一种解决方法,你可以给它一个父母,这样你就可以通过javascript来操纵它。

例如:

JSF

<h:panelGroup styleClass="someCssClass">
   <h:inputHidden id="someId" value="someValue" />
</h:panelGroup>

Javascript(使用jQuery,你也可以使用纯JavaScript)

$('.someCssClass input[type=hidden]').val('yourNewValue');

答案 1 :(得分:0)

请查看类似问题 - How can I know the id of a JSF component so I can use in Javascript 您可以选择“id”属性,但在最终的html代码中,它可能不同,但是复合:例如,如果您使用id="myhidden"的输入位于带有id="myform"的表单内,则最终输入将具有{ {1}}。

答案 2 :(得分:0)

最后,我使用了标准的HTML <input type="hidden">标记,因为我没有使用JSF标记的优势。如果您尝试使用JavaScript在隐藏输入中设置值,我建议您使用此解决方法。

答案 3 :(得分:0)

这些答案都不能满足我的需求(需要PrimeFaces组件,需要类而不是ID,包装工作太多),所以这就是我想出的:

基本上可以归结为使用这样的内容(因为h:inputHidden成为常规的input):document.querySelector("input[hidden-class=" + blah + "]")