java - 支持 Bean 未获取 javascript 发送的值

标签 java javascript jsf facelets managed-bean

我有三个下拉列表,其值已复制到 <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 会出现什么问题?

enter image description here

最佳答案

您能否检查 bean 的范围以及它是否在提交期间重新初始化。在这种情况下,无论这些值是否从客户端发送,隐藏字段都会获取其初始值。

关于java - 支持 Bean 未获取 javascript 发送的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11182875/

相关文章:

java - 计划作业上的 ScheduledExecutorService、timerService 和无状态 EJB

java - 为 sql 中的所有列选择不同的值

javascript - Windows 7 小工具不释放 ActiveX 对象

java - Rich faces panelBar 有问题吗?

javascript - Couchbase 服务器未将 CORS header 返回到 XMLHttpRequest 对象

Javascript 确保三元表达式中的值 "true"的最佳方法是什么

javascript - 在我的 java 数据表中合并类似于 ms access 的查找对话框

java - 在 eclipse 中使用 java 和 scala

java - 在 MappedSuperclass 上更新 Spring-data-jpa 时出错

java - Swing 应用程序窗口未显示更改