我正在尝试在JSF中的<h:inputHidden>
上设置class或id参数。代码如下所示:
<h:inputHidden value="#{getData.name}" class="targ" />
但是在浏览器中,没有设置类:
<input type="hidden" name="j_idt6" value="j_idt6">
我需要为这个参数设置一个类,因为我有一个<h:inputText>
的JavaScript自动完成函数,它在隐藏输入中设置一个值,需要在下一页中传递。
有任何想法吗?谢谢!
我知道这有点晚了,但它可以帮助将来的某个人。由于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');
这些答案都没有满足我的需求(需要PrimeFaces组件,需要类而不是ID,包装太多了),所以这就是我提出的:
pass:hidden-class="blah"
(在我的情况下,它是顶部的xmlns:pass
)[attribute=value]
选择器:
https://www.w3schools.com/cssref/sel_attribute_value.asp
document.querySelector multiple data-attributes in one element这基本上归结为使用这样的东西(因为h:inputHidden
成为常规的input
):document.querySelector("input[hidden-class=" + blah + "]")
请参阅类似的问题 - How can I know the id of a JSF component so I can use in Javascript您可以选择“id”属性,但在最终的html代码中它可能不一样,但是复合:例如,如果您使用id="myhidden"
输入id="myform"
,最终输入将具有id="myform:myhidden"
。
最后,我使用了标准的HTML <input type="hidden">
标签,因为我没有使用JSF标签的优势。如果您尝试使用JavaScript在隐藏输入中设置值,我建议您使用此解决方法。