1

<h:inputHidden>次の JavaScript 関数によって値がコンポーネントにコピーされた 3 つのドロップダウン リストがあります。

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;
}

次の 3 つの<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 要求と共に送信された変数のスクリーンショットです。豆の問題は何でしょうか?

ここに画像の説明を入力

4

2 に答える 2

0

Bean のスコープと、送信中に再初期化されているかどうかを確認できますか。その場合、値がクライアント側から送信されているかどうかに関係なく、隠しフィールドは初期値を取得します。

于 2012-08-21T18:41:06.270 に答える
0

alertステートメントを使用して、オブジェクトが存在するかどうかを確認できます。例

function getBirthDate() {
var months = document.getElementById("months")
var hidden1 =  document.getElementById("formsignup:monthField");
alert(months);alert(months.value);
alert(hidden1);alert(hidden1.value);

オブジェクト値がnullの場合、要素を取得するために指定されたIDは適切ではありません..オブジェクトから取得している値も確認してください..役立つと思います

于 2013-12-11T07:10:58.730 に答える