【问题标题】:Set class or ID on <h:inputHidden> in JSF在 JSF 中的 <h:inputHidden> 上设置类或 ID
【发布时间】:2013-11-12 11:00:18
【问题描述】:

我正在尝试在 JSF 中的 &lt;h:inputHidden&gt; 上设置类或 id 参数。代码如下所示:

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

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

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

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

有什么想法吗?谢谢!

【问题讨论】:

    标签: class jsf input hidden


    【解决方案1】:

    我知道这有点晚了,但它可以帮助将来的人。 由于 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');
    

    【讨论】:

    • As inputHidden shows nothing in the browser there's no sense to allow it to have a class - 这是不对的。 HTML 类只是一个语义属性,它通常与 CSS 一起使用并不意味着它专用于样式。
    【解决方案2】:

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

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

    【讨论】:

    • 直通属性就是答案。但是你不必编一个新的属性名,你可以做pass:class。这是完全有效的。
    【解决方案3】:

    请查看类似问题 - How can I know the id of a JSF component so I can use in Javascript 您可以使用 sed "id" 属性,但在最终的 html 代码中,它可以不一样,而是复合:例如,如果您的输入 id="myhidden" 在表单内,则带有 id="myform",最终输入将有 id="myform:myhidden"

    【讨论】:

    • 谢谢,但那篇文章主要指的是inputText,我设置类没有问题。 inputHidden 具有不同的行为,因为如果您在代码中设置它,它不会在浏览器中获取任何类或 id。
    • 你不能为 h:inputHidden 设置 'styleClass' 属性(因为它是不可见的并且不应该有任何样式),但是如果你设置了 'id' 属性,它会在最后看到呈现 HTML 代码,但具有使用组件层次结构组成的值,如我之前所写。正如我从您的问题中了解到的那样,您需要一种方法来以某种方式在 JS 中选择此输入并设置值,“id”就足够了。
    • 我尝试使用 styleClass,但 Netbeans 返回此错误:“属性 styleClass 未在组件 inputHidden 中定义”。我也尝试过使用“id”但它没有出现,就像我在问题中提到的那样。无论如何感谢您的帮助!
    【解决方案4】:

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

    【讨论】:

    猜你喜欢
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 2013-09-12
    相关资源
    最近更新 更多