Функция onsubmit формы ограничивает входное значение формы для передачи сервлету - PullRequest
0 голосов
/ 12 марта 2020

Извините, если у этого вопроса есть дубликаты в другом месте. Я искал много возможных релевантных ссылок, но просто не смог найти решение, чтобы решить проблему, с которой столкнулся.

У меня есть простая форма в 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 будет отображаться загрузчик, а когда страница запрашивает загрузку файла, она скрывает загрузчик. Я могу понять это, со ссылкой на этот пост: Включите кнопку отправки формы в ответ на загрузку файла . Функция 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);
}

Проблема заключается в том, что когда я ввожу некоторые значения в форму поля ввода и нажимаю кнопку отправить, значение не передается сервлету. Когда я использую отладку для проверки переменной, она выдает 'null'. Код, который я использую для получения формы ввода в сервлете: -

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

Но если я удалил функцию onsubmit, значение можно передать сервлету.

Могу ли я узнать, почему это так и где я делаю не так в кодах?

Большое вам спасибо за вашу помощь и время в продвинутом!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...