我有三个下拉列表,其值已复制到 <h:inputHidden>
由以下 JavaScript 函数组成:
function getBirthDate() {
var months = document.getElementById("months")
var hidden1 = document.getElementById("formsignup:monthField");
hidden1.value = months.options[months.selectedIndex].text;
var days = document.getElementById("days");
var hidden2 = document.getElementById("formsignup:dayField");
hidden2.value = days.options[days.selectedIndex].value;
var years = document.getElementById("years");
var hidden3 = document.getElementById("formsignup:yearField");
hidden3.value = years.options[years.selectedIndex].value;
}
这是三个 <h:inputHidden>
组件:
<h:inputHidden value="#{signupBean.month}" id="monthField"/>
<h:inputHidden value="#{signupBean.day}" id="dayField"/>
<h:inputHidden value="#{signupBean.year}" id="yearField"/>
这是命令按钮,应该调用将值复制到输入然后将它们提交到支持 bean 的函数。
<h:commandButton image="images/images/signup1.png"
styleClass="joinnow"
id="joinus" action="#{signupBean.save}"
onclick="getBirthDate()" />
但它们以 null
的形式到达在支持 bean 中。这是怎么造成的以及如何解决?
编辑:当我尝试从 JSF 组件中选择元素时,jQuery 卡住。元素的ID有问题吗?
编辑:下面是随 HTTP 请求一起发送的变量的屏幕截图,证明这些值已正确发送。 bean 会出现什么问题?
最佳答案
您能否检查 bean 的范围以及它是否在提交期间重新初始化。在这种情况下,无论这些值是否从客户端发送,隐藏字段都会获取其初始值。
关于java - 支持 Bean 未获取 javascript 发送的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11182875/