如何在不使用servlet中的提交按钮的情况下提交表单

时间:2011-03-27 15:04:02

标签: sql-server jsp webforms form-submit

if(Category.equals("Seasonal Decorations")){
    out.println("<form name='adddeco' id='adddeco' method='post'>");
    out.println("<input type=hidden name=cater value=decos>" +
                "<table border=0 colspan=5 >" +
                "<tr><th>Name & Description of DECORATION </th><th><input type=text name=deco_itemname width=30></th></tr>");
    out.println("<tr><th>Product ID                  </th><th><input type=text name=deco_PID width=30></th></tr></table>");
    out.println("<tr><th>Provider                    </th><th><input type=text name=deco_provide width=30></th></tr>");
    out.println("<tr><th>AVAILIBILTY</th><th><select name=DECO_AVAIL>"+
                "<option>UNAVAILABLE</option>" +
                "<option>AVAILABLE</option></select></th></tr>");
    out.println("<tr><th>No.of DECORATION                 </th><th><input type=text name=deco_qnty width=30></th></tr>");
    out.println("<tr><th>Shelf NO                    </th><th><input type=text name=deco_shelfno width=30></th></tr>");
    out.println("<tr><th>Original Price              </th><th><input type=text name=deco_orgprice width=30></th></tr>");
    out.println("<tr><th>Selling Price               </th><th><input type=text name=deco_sellprice width=30></th></tr>");
    out.println(" <input type=button value=add onclick='$(#adddeco).attr(action,additem1);$(#adddeco).submit();'>&nbsp;&nbsp;&nbsp;<input type=reset value=clear>" +
                "</form>");

以上是我在Servlet中的代码,为了向DB输入一个值,但问题是我无法将此表单汇总到下一页,因为您可以看到我没有使用“提交” “按钮而不是我正在使用事件onclick =''。如果“out.println();”,上面的代码在JSP中工作被移除,但你可以看到我需要比较category.equals("seasonal decorations")并仅在需要时运行特定代码,所以如果有人知道如何克服这个特定问题,请帮助我。

请记住,当我使用条形码扫描仪时,我无法使用sumbit按钮提交。

2 个答案:

答案 0 :(得分:0)

避免从Servlet写出HTML,这是不好的做法。很难做到正确,难以维护,可读性极差。这是一个最适合JSP的工作。

您的问题似乎是生成的JavaScript无效。如果您检查输出页面的来源,您会注意到您正在打印出来:

<input type=button value=add onclick='$(#adddeco).attr(action,additem1);$(#adddeco).submit();'>

请注意,$()的参数周围没有引号。应该有。

这更接近正确(我说更接近因为您的HTML也可能无效,具体取决于您的DOCTYPE - 您没有关闭代码,而且您没有关于属性的引号):

out.println("<input type=button value=add onclick='$(\"#adddeco\").attr(action,additem1);$(\"#adddeco\").submit();'>&nbsp;&nbsp;&nbsp;<input type=reset value=clear>" 

所有这些引用的转义都是您应该使用JSP的重要原因。

答案 1 :(得分:0)

您应该阅读并使用JSTL来使您的代码更具可读性。它允许您使用if语句和其他控制结构,而无需使用Java代码。例如:

<c:if test="category eq 'Seasonal Decorations'">
   <form name="adddeco" id="adddeco" method="post">
   ...
   </form>
</c:if>