【问题标题】:how to submit a form without using a submit button in servlet如何在不使用 servlet 中的提交按钮的情况下提交表单
【发布时间】:2011-03-27 15:04:01
【问题描述】:
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 中的代码,以便向数据库输入值,但问题是我无法将此表单汇总到下一页,因为您可以看到我没有使用“提交" 按钮,而不是我使用事件 onclick=''。如果“out.println();”,上面的代码在 JSP 中有效已删除,但如您所见,我需要比较 category.equals("seasonal decorations") 并仅在需要时在特定代码上运行,所以如果有人知道如何克服这个特定问题,请帮助我。

请记住,由于我使用的是条形码扫描仪,因此我无法使用 sumbit 按钮提交。

【问题讨论】:

  • 请联系ask good questions。除其他外,这意味着格式化您的代码,进行快速拼写检查,使用正确的语法和完整的句子,而不是使用“sms-speak”,不使用全大写(这相当于大喊大叫) - 这些都是你的标志粗鲁无礼,不关心付出任何努力 - 那么为什么其他人要努力帮助你呢?

标签: sql-server jsp webforms form-submit


【解决方案1】:

避免从 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 的一个重要原因。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 自我注意:这可能应该放在评论而不是答案中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 2011-12-04
    • 2011-04-02
    • 2013-12-11
    • 1970-01-01
    相关资源
    最近更新 更多