6

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

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

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

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

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

有任何想法吗?谢谢!

4

4 回答 4

5

我知道这有点晚了,但它可以帮助将来的人。由于 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');
于 2014-06-30T19:13:01.203 回答
1

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

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

于 2019-03-07T19:12:36.100 回答
0

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

于 2013-11-01T09:07:05.437 回答
0

请查看类似的问题 -我如何知道 JSF 组件的 id 以便我可以在 Javascript 中使用 您可以使用 sed“id”属性,但在最终的 html 代码中它可能不一样,而是复合:例如,如果您的输入id="myhidden"是在表单内id="myform",最终输入将有id="myform:myhidden"

于 2013-11-01T09:00:10.053 回答