javascript - 如何获取h :inputHidden element whose value is calculated using jquery javascript的值

标签 javascript jsf-2

我的要求是当用户点击提交按钮时,计算出的新值应该存储在 inputHidden 字段值中。我在 jQuery 中编写了函数来计算单击提交按钮时 inputHidden 字段的新值。新值分配给 inputHidden 字段值。但问题是,在使用 hidden.getValue() 检索支持 bean 中的值时,它返回空值。

    jQuery code:
    function hidden(){
    var valueCalculated = '3';
    $('#hidden').val(valueCalculated);
    alert($('#hidden').val());  //displays 3 when submit button is clicked.
    }

   JSF code:
   <h:inputHidden binding="#{bean.hidden}"/>

在支持bean中, 我有用于隐藏类型 HTMLInputHidden 的 getter 和 setter,我使用 getValue() 检索隐藏值。 这应该返回 valueCalculated 但它返回 null。 backing bean中计算值的获取方式是什么。

最佳答案

HtmlInputHidden#getValue() 只会在您处于调用操作阶段时返回提交的值。它是在更新模型值阶段设置的。因此,如果您试图在 bean 的构造期间或在调用操作阶段之前 的其他 JSF 阶段获取它,您将得到 null

要解决这个问题,请重写代码逻辑,以便在正确的时刻访问它;在命令按钮/链接操作方法中。否则,您必须从请求参数映射中手动获取它。

例如

<h:form id="form">
    <h:inputHidden id="hidden" value="#{bean.hidden}" />
    <h:commandButton value="submit" action="#{bean.submit}" onclick="$('#form\\:hidden').val('foo')" />
</h:form>

public void submit() {
    // Here, in the bean's action method, it should already be set.
    System.out.println(hidden); // "foo"
}

关于javascript - 如何获取h :inputHidden element whose value is calculated using jquery javascript的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5906054/

相关文章:

jsf - 在 PrimeFaces (4.0) 确认对话框中,如何确保默认情况下 'No' 处于焦点?

java - CANNOT_FIND_FACELET_TAGLIB 对于 xmlns :jsf ="http://xmlns.jcp.org/jsf"

jsf-2 - 如何更改 h :commandLink? 的标准 href ="#"属性

javascript - 如何将信息从 node.js 传递到 html

javascript - 使用 Node.js 遍历 XML 文档的最快方法?

java - 在 JSF 2.0 中重新加载时未应用的模板和样式

jsf-2 - 如何使用 EL 2.2 方法表达式将动态参数传递给支持 bean?

JavaScript 复选框 onclick 函数

php - 查看javascript生成的html页面的实际html源

javascript - 无法使用 jQuery 查询 JSON