【问题标题】:getElementById().value does not set the hidden inputgetElementById().value 不设置隐藏输入
【发布时间】:2012-08-03 13:28:35
【问题描述】:

我正面临一个有趣的情况。我正在尝试使用 javaScript 代码将 myBean 中的 myValue 设置为隐藏输入,但它不起作用。我调试了一下,发现它从 myBean 调用了 getMyValue() 方法,然后什么也没做。它不会给出错误或警告,也不会设置值。请帮忙。

提前致谢。代码如下:

<h:body>

<script type="text/javascript">
   function setHiddenValue(){
   document.getElementById('myForm:hidden2').value = 3.0;
  }
</script>
<h:form id="myForm">            
   <h:inputHidden id="hidden2" value="#{myBean.myValue}" />
   <h:commandButton value="submit" action="..." onclick="setHiddenValue();" />
</h:form>

</h:body>   

【问题讨论】:

  • 但看起来“id”值只是“hidden2”,而不是“myform:hidden2”。
  • 不是真的..看看这个h:前缀..我猜是JSF生成了这样的id..无论如何请检查它是否真的是你在那里生成的id..
  • @Pointy:你错了。 Aylak,这是完整代码吗?模型值未更新的可能原因有很多,但到目前为止发布的代码并未以任何方式表明将跳过更新模型值阶段。例如,当发生验证/转换错误时,可能会发生这种情况。
  • 好吧,那么您显然没有运行您认为正在运行的代码。这不可能是由到目前为止发布的代码引起的。
  • 以某种方式确实有可能(例如,复合组件,或嵌套在另一种形式中的包含文件等),但绝对不是到目前为止发布的代码,假设它是最低必要的代码一个人可以直接复制'n'paste'n'run而不做任何更改来重现你的问题(毕竟不是这样;在你以后的问题中小心过度简化代码sn-ps!)。

标签: javascript jsf hiddenfield


【解决方案1】:

按钮不是提交表单而不是执行 onclick 操作吗?请尝试相同但使用

<button onclick="setHiddenValue();">submit</button>

而不是

<h:commandButton value="submit" action="..." onclick="setHiddenValue();" />

或者使用:

<h:commandButton value="submit" action="..." onclick="setHiddenValue(); return false;" />

【讨论】:

  • 不,这样可以正常工作。但问题是它没有看到我的 h:form id。但我不知道怎么做。还是谢谢。
猜你喜欢
  • 1970-01-01
  • 2019-01-06
  • 1970-01-01
  • 1970-01-01
  • 2015-02-18
  • 1970-01-01
  • 2012-11-07
  • 2011-06-15
  • 1970-01-01
相关资源
最近更新 更多