Предположим, у меня есть две радиокнопки (с метками 1 и 2) и немного текста внизу страницы.По умолчанию значение -1
для текста, и флажки не установлены.Если я нажимаю одну из переключателей, я хочу изменить значение текста на 1 или 2 в зависимости от выбранного радиовхода.Для этого я основал код на вызове AJAX, описанном здесь .Вот код:
hello.py
from flask import (
Flask, render_template, request
)
app = Flask(__name__)
@app.route('/', methods=('GET', 'POST'))
def hello():
level = -1
print(request.method)
if request.method == 'POST':
level = int(request.form.get('level', False))
return render_template('test.html', value=level)
templates/test.html
<html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<body>
<form>
<input name="level" type="radio" id="1">1</input>
<input name="level" type="radio" id="2">2</input>
</form>
{{ value }}
</body>
<script>
$(function() {
$('input[type=radio]').change(function() {
console.log( $( this ).attr("id"));
$.ajax({
type: "POST",
data: { level: $( this ).attr("id") },
success: function(response) {
console.log("HERE");
document.write(response);
},
});
});
});
</script>
</html>
Когда я звоню flask run
, выбор радиокнопки изменит значениелибо 1
, либо 2
, но я не могу выбрать один из переключателей во второй раз.Страница будет зависать при втором выборе, и я не уверен, что происходит.
Примечание: хотя это может показаться излишним, у меня есть более сложная форма отправки в более крупном проекте, над которым я работаю,это просто MVCE.