发送的值,我有三个下拉列表其值由下面的JavaScript函数都被复制到<h:inputHidden>
组件:辅助Bean没有得到由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()" />
但是,他们在抵达后台bean。这是如何造成的,我该如何解决这个问题?
编辑:当我尝试从JSF组件中选择元素时,jQuery冻结。元素的ID有问题吗?
编辑:下面是与HTTP请求一起发送的变量屏幕截图,证明值已正确发送。这个bean有什么问题?
你确定正确的更改值已发送到服务器?检查浏览器的开发人员工具集中的HTTP流量。 – BalusC
确保你的'在你的''内,并且你的'getBirthDate'方法可以工作,你可以在Firefox中使用console.log()'测试每个pass(使用firebug)或Chrome(使用Chrome控制台按Ctrl + Shift + J)。 –
关于ID,JSF将通过以下格式更改组件的ID::,例如在'如果你的JSF组件不在像<! - 这里有一些内容的形式之外,那么“myInputText”将是“myForm:myInputText” .. - >'myInputText“id将是”myInputText“,因为它不在容器内。 –