我的要求是当用户点击提交按钮时,计算出的新值应该存储在 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/