У меня есть форма, в которой есть 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">×</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();
});
Однако , я бы очень хотел узнать, почему мой первый подход не работает ... я думаю, что проблема в форме, а не на стороне сервера ...