У меня есть следующая форма в Django, и каждый раз, когда пользователь выбирает опцию Finalized
, два поля становятся недоступными для редактирования, а когда пользователь выбирает опцию Active
, эти два поля снова становятся редактируемыми. Однако, похоже, что это работает только после первой загрузки страницы, затем мне нужно выбрать другой вариант и затем перезагрузить всю страницу, чтобы заставить работать код JS.
{% extends "base.html" %} {% load widget_tweaks %}
{% block content %}
<body onload="makeReadOnly();">
<div id="form-group">
<form method="POST" action="." enctype="multipart/form-data">
{% csrf_token %}
<div class="tweet-composer">
<label>Insert your task</label>
{{ form.task|add_class:"card js-keeper-editor" }}
</div>
<label>Select your category</label>
{{ form.category|add_class:"card" }}
<label>Current points:</label>
{{ form.points|add_class:"card" }}
{% endif %}
<button type="submit" class="btn btn-success">Send</button>
</form>
</div>
</body>
{% endblock content %}
<script type="text/javascript">
{% block jquery %}
function makeReadOnly(){
if (document.getElementById('id_status').value == 'Finalized'){
document.getElementById('id_task').readOnly=true;
document.getElementById('id_category').readOnly=true;
}else if (document.getElementById('id_status').value == 'Active'){
document.getElementById('id_task').readOnly=true;
document.getElementById('id_category').readOnly=false;
}
{% endblock %}
</script>

Как заставить JS загружаться сразу после изменения параметров, вместо изменения одного параметра и перезагрузки всей страницы