In my Django project, on my HTML page, I have a script which runs Query depending on the other values ($("#id_report").val() values). Function runs 'on click'. Problem is, when I click on '#id_person' dropdown menu to select an option which I get from query, I run query again and my selection gets reset.
Problem is:
- I click on dropdown menu
- Query runs
- I select one of the options from Query return data
- When I select, I need to click a selection, Query runs again and my selection is lost I need the script to run only once and dropdown menu is twice a click. First to selet dropdown, second to select an option.
post_form.html
{% extends "blog/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="content-section">
<form method="POST" id="PostForm" data-sektor-url="{% url 'ajax_load_sektors' %}" data-department-url="{% url 'ajax_load_departments' %}" data-person-url="{% url 'ajax_load_persons' %}" novalidate enctype="multipart/form-data">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Submit report</legend>
{{ form|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Report</button>
</div>
</form>
</div>
<script>
$("#id_person").click(function () {
var value = $("#id_report").val();
var url = $("#PostForm").attr("data-person-url");
$.ajax({
url: url,
data: {
'value': value,
},
success: function (data) {
$("#id_person").html(data);
console.log(data);
}
});
});
</script>
{% endblock content %}
How can I run this only when I click on dropdown, not when I select (then it runs again because it's a click).
forms.py
from django import forms
from .models import Post, File
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ['title', 'subject', 'person', 'report']