我正在尝试在JSF中的<h:inputHidden>
上设置class或id参数。代码如下所示:
<h:inputHidden value="#{getData.name}" class="targ" />
但是在浏览器中,没有设置类:
<input type="hidden" name="j_idt6" value="j_idt6">
我需要为这个参数设置一个类,因为我有<h:inputText>
的JavaScript自动完成函数,它在隐藏输入中设置一个值,需要在下一页中传递。
有什么想法吗?谢谢!
答案 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,包装工作太多),所以这就是我想出的:
pass:hidden-class="blah"
(在我的情况下,xmlns:pass
位于顶部)[attribute=value]
选择器:
基本上可以归结为使用这样的内容(因为h:inputHidden
成为常规的input
):document.querySelector("input[hidden-class=" + blah + "]")