В сервлете я получаю значение NULL в форме кнопки отправки - PullRequest
0 голосов
/ 22 января 2020

У меня есть форма, в которой есть 2 кнопки отправки (Удалить, Отправить). Если пользователь нажимает кнопку «Удалить», я показываю всплывающее окно windows, чтобы подтвердить действие.

Посмотрите на Jsfiddle

HTML Форма:

<form id="myForm" method="post">
  <div class="form-row mb-3">
      <button type="submit" name="bt" value="delete" class="btn btn-dark mr-3">Delete</button>
      <button type="submit" name="bt" value="update" class="btn btn-primary">Submit</button>
  </div>
</form>

<div class="modal fade" id="alertDelete" tabindex="-1" role="dialog" aria-hidden="true">
        <div class="modal-dialog modal-lg modal-dialog-centered" role="document">
            <div class="modal-content">
                <div class="modal-header no-borderb">
                    <h5 class="modal-title" id="exampleModalLongTitle">Confirm Delete</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>

                <div class="modal-footer no-bordert">
                    <button id="cfmContinue" type="button" class="btn btn-primary">DELETE</button>
                </div>
            </div>
      </div>
</div>

И JS:

$('form').on("click", ":submit", function (e) {                    
  var submitValue = $(this).val();
  if (submitValue === 'delete') {
    e.preventDefault();
    $('#alertDelete').modal('show');
  }
});

$('#cfmContinue').click("click", function (e) {
  console.log("cfmContinue clicked");
  $('#myForm')[0].submit();
});

Однако в моем сервлете, когда я читаю кнопку отправки, я получаю нулевое значение

String submit = request.getParameter("bt");
System.out.println("submit = " + submit);

submit = null

Я не понимаю, почему я получаю значение NULL .. Обычно я получаю все остальные входные данные вида ..

ОБНОВЛЕНИЕ

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

<input name="btAction" type="text" class="form-control hidden">      

$('#cfmContinue').click("click", function (e) {
   var cfmContinue = $('#cfmContinue').val();
   $("input[name=btAction]").val(cfmContinue);
   $('#myForm')[0].submit();
});

Однако , я бы очень хотел узнать, почему мой первый подход не работает ... я думаю, что проблема в форме, а не на стороне сервера ...

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