2011-12-01 115 views
0

我有一個帶有struts標籤的JSP文件。無法從javascript函數提交表單

<html:form action="showcart"> 
<table width="100%" border="1"> 
    <tr> 
     <td width="46" align="center" valign="middle"></td> 
     <td width="110"></td> 
     <td width="31">&nbsp;</td> 
     <td width="171" class="cart_contents"><span class="heading">Product</span></td> 
     <td width="157" class="cart_contents"><span class="heading">Quantity</span></td> 
     <td width="181" align="center" valign="middle" class="cart_contents"><span class="heading">Unit Price</span></td> 
     <td width="157" class="cart_contents"><span class="heading">Total Price</span></td> 
     <td width="222" align="center" valign="middle"></td> 
    </tr> 
    <%! 
     java.util.Map cartList = null; 
    %> 
    <% 
     cartList = (java.util.Map)request.getAttribute("cartList"); 
     if (null != cartList) { 
      for(Object p : cartList.values()) { 
       com.pojo.Product product = (com.pojo.Product)p; 
    %> 
    <tr> 
    <td width="46" align="center" valign="middle"><input type="checkbox" name="checkbox" value="<%=product.getProductid()%>" /></td> 
    <td width="110"><img src="images/01.jpg" width="110" height="78" /></td> 
    <td width="31">&nbsp;</td> 
    <td width="171"><span class="heading"><%=product.getProductname()%></span><br /><span class="contents">Serial number:<%=product.getProductid()%></span></td> 
    <td width="157" align="center" valign="middle" class="contents"> 
     <label> 
      <input name="textfield2" type="text" value="3" size="5" align="center" onchange="submitForm()" /> 
     </label> 
     <br /></td> 
    <td width="181" align="center" valign="middle" class="contents"><span class="price"><%=product.getUnitprice()%></span> </td> 
    <td width="157" class="cart_contents"><span class="heading">Total Price</span></td> 
    <td width="222" align="center" valign="middle"><span class="blue_contents">Remove</span></td> 
    </tr> 
    <% 
     } 
     } 
    %> 
</table> 
<html:submit/> 
    </html:form> 

每當用戶更改數量文本字段時,調用JS函數submitForm()。我正在使用內聯腳本,如下所示。

<script type="text/javascript"> 
function submitForm() 
{ 
    document.forms[0].action = "showcart.do?method=updateCart&pcount=2&product=2345"; 
    document.forms[0].submit(); 
} 
</script> 

但是,我得到一個JS錯誤,說該窗體是未定義的。你能告訴我我錯在哪裏嗎?

等待解決方案!

在此先感謝!

+0

該HTML是否正確?你不應該有*

... *? – Icarus

+0

這是一個等效於html表單的struts標籤。 – Renjith

+0

僅供參考,使用'<%! Map cartlist ...表示每個JSP實例都有一個映射;如果你的系統有多個用戶,這將是非常糟糕的。見[this](http://docs.oracle.com/javaee/5/tutorial/doc/bnaos.html)。 –

回答

0

你的代碼對我來說工作得很好。確保JavaScript代碼位於表單之後。還要確保你的瀏覽器的錯誤控制檯中沒有javascript錯誤。如果在錯誤發生後無法運行代碼。