發送的值,我有三個下拉列表其值由下面的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「,因爲它不在容器內。 –