Form onsubmit函数限制将表单输入值传递给servlet

问题描述 投票:0回答:1

如果此问题在其他地方重复出现,请先抱歉。我已经搜索了许多可能的相关参考资料,但无法获得解决我所遇到问题的解决方案。

我在jsp中有一个简单的表单,当用户单击“提交”时,它将生成一个供用户下载的excel。表单代码如下:-

<form id="myform" class="form-horizontal" action="MyServlet" method="POST"  onsubmit="startDownload(this)">
      <div class="form-group">
           <label class="control-label col-sm-offset-2 col-sm-2" for="userText">User Text:</label>
            <div class="col-sm-5">
                    <input type="text" class="form-control" id="userText" name="userText" placeholder="Enter Text">
             </div>
      </div>            
      <div class="form-group"> 
           <div class="col-sm-offset-4 col-sm-5">
                <button type="submit" id="submitBtn" class="btn"><i class="fa fa-download"></i> Generate File </button>                        
           </div>
       </div>
  </form>

在提交表单期间,jsp页面将显示一个加载器,当页面提示文件下载时,它将隐藏该加载器。我可以参考以下帖子来实现这一点:Reenable a form submit button on response of a file download。 onSubmit JavaScript函数如下:-

function startDownload(form) {

            var token = new Date().getTime();
            form.token.value = token;
            showLoading(); //to show the loader 


            var pollDownload = setInterval(function() {
                if (document.cookie.indexOf("download=" + token) > -1) {
                    document.cookie = "download=" + token + "; expires=" + new Date(0).toGMTString() + "; path=/";
                    stopLoading(); //to hide the loader
                    clearInterval(pollDownload);
                }
            }, 500);
}

问题是,当我在输入字段表单中输入一些值并单击Submit时,该值未传递到servlet。当我使用调试检查变量时,它给出“ null”。我用来获取Servlet中表单输入的代码:-

String userText = request.getParameter("userText");

但是如果我删除了onsubmit函数,则可以将值传递给servlet。

我可以知道为什么会这样吗,我在代码中哪里做错了吗?

非常感谢您提供的高级帮助和时间!

javascript java html jsp servlets
1个回答
0
投票

您是否在servlet方法中接受HttpServletRequest?您可以共享servlet代码吗?

© www.soinside.com 2019 - 2024. All rights reserved.