我有三个下拉列表,其值已通过以下JavaScript函数复制到<h:inputHidden>
个组件:
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请求一起发送的变量的屏幕截图,它证明了值已正确发送。豆子有什么问题?
答案 0 :(得分:0)
你可以检查你的bean的范围,以及它是否在你的提交过程中被重新标记..在这种情况下,无论是否从客户端发送值,隐藏字段都会获得其初始值。
答案 1 :(得分:0)
您可以使用警告语句检查对象是否存在。示例
function getBirthDate() {
var months = document.getElementById("months")
var hidden1 = document.getElementById("formsignup:monthField");
alert(months);alert(months.value);
alert(hidden1);alert(hidden1.value);
如果Object值为null,则给出Id以获取元素不正确..还要检查从对象获取的值..我认为这可能会有所帮助