Я работаю над приложением Flask, в котором у меня есть одна страница с несколькими кнопками, и для каждой из этих кнопок при нажатии я хотел «подтвердить - вы уверены?»всплывающее окно, прежде чем перейти к другой функции просмотра, которая выполняет запуск задания в зависимости от кнопки.Я застрял, пытаясь найти способ передать переменную из кнопки через модал для запуска функции просмотра.
Вот что я пробовал до сих пор:
app.py:
@app.route('/buttons', methods=['GET', 'POST'])
def buttons():
return render_template("buttons.html")
@app.route('/run/<cmd>', methods=['GET', 'POST'])
def run(cmd):
return render_template_string('''
cmd = {{ cmd }}<br>
''', cmd=cmd)
buttons.html:
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<meta charset="utf-8">
<script type="text/javascript">
$(document).on("click", ".open-modal", function () {
var mycmd = $(this).data('id');
$(".modal-body #cmd").val( mycmd );
$("#confirm-modal").modal("show");
<script>
</head>
<body>
<form method="post" action="/">
<button type="button" class="open-modal" data-toggle="modal" data-id="Test" data-target="#confirm_modal">Test</button>
<button type="button" class="open-modal" data-toggle="modal" data-id="Test2" data-target="#confirm_modal">Test2</button>
</div>
</form>
<!-- Modal for Pop Up-->
<div class="modal" tabindex="-1" role="dialog" id="confirm-modal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Confirm</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>Confirm - Are you sure?</p>
<input type="hidden" name="cmd" id="cmd" value=""/>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<form action="{{ url_for('run', cmd=cmd) }}" method="POST">
<input class="btn btn-secondary" type="submit" name="submit_button" value="Confirm">
</div>
</div>
</div>
</div>
</body>
До попытки добавить модальное окно я использовал кнопки отправки в форме внутри button.html, где я должен был поймать значение кнопки вКнопки работают и передают переменную в сеанс, а затем переводят ее в функцию запуска.Однако для модального режима требуется кнопка type = "button" для триггера, который ничего не отправляет обратно в форму.Я также изучил использование и каким-то образом передачу скрытого входного значения или обслуживания модального с другой HTML-страницы.
Любое предложение о том, как сделать эту работу лучше?Ранее у меня был модал подтверждения удаления, где я просто обернул кнопку подтверждения модала в форму с url_for, поэтому я подумал, что это не будет так сложно.К сожалению, я не слишком хорошо разбираюсь в Java-скриптах.Любая помощь очень ценится!