0

javascript によって値が設定されるフォームに隠しフィールドがあります。実際に値が設定されることを確認しました。ただし、サーブレットに送信しようとすると、null 値が生成されます。POST メソッドと「送信」ボタンを使用して、サーブレットに送信します。値は、「qtyText」テキストボックスへのユーザー入力によって取得されます。JS では、その値は動的に設定されます。サーブレットに送信されないのはなぜですか? JS

   function(calculateTotalPrice(txtbxvalue, price)
  {
   myForm = document.forms[0];        
      var txtBx = myForm.elements['qtyText'];
      var txtBxHidden = myForm.elements['qtyTextHidden'];
      for(var i = 0; i < txtBx.length; i++) 
         {
          var curTxtBx = txtBx[i].value; 
          var txtBxHiddenBx = txtBxHidden[i];
           txtBxHiddenBx.value = curTxtBx;
         }
   }

HTML

<table>

   <c:forEach items="${ListInServlet}" var= "exBean">
  <form name = "tableForm" method = "post" action= "/rpsapp/someservlet">
    <input type="hidden" name="productId" value= "<c:out Value 
                                          = "${exBean.productId}"/>"  />
         <input type="hidden"  value = "somevalue" name="qtyTextHidden"/>
         <input name = "qtyText" type = "textbox" size = "2" value = "" onChange 
                              = "calculateTotalPrice(this, '${exBean.price}')"/>

   </c:forEach>
  </form>
</table>
4

2 に答える 2

0

foreach ステートメント (タグ) が form タグと重複しています。

次のいずれかの形式にする必要があります。

<c:forEach ...> <form ...> ... </form> </c:forEach>
于 2013-03-09T14:37:22.637 に答える
0

製品の数だけ隠し変数を作成する必要があります。

  <form name = "tableForm" method = "post" action= "/rpsapp/someservlet">
   <c:forEach items="${ListInServlet}" var= "exBean">
    <input type="hidden" name="productId${exBean.productId}" value= "<c:out Value 
                                          = "${exBean.productId}"/>"  />
         <input type="hidden"  value = "somevalue" name="qtyTextHidden${exBean.productId}"/>
         <input name = "qtyText${exBean.productId}" type = "textbox" size = "2" value = "" onChange 
                              = "calculateTotalPrice(this, '${exBean.price}')"/>

   </c:forEach>
  </form>
于 2013-03-09T19:42:59.377 に答える