我有一个 Django 项目,当下拉列表更改值时,我尝试运行 JS/AJAX 脚本。相同的代码适用于按钮,但不适用于下拉菜单。
这里是带有按钮、下拉菜单和脚本的 html 代码:
<button class="toChange">AJAX POST TEST</button>
<select class="toChange">
{% for item in regions %}
<option val="{{ item }}" {% ifequal item reg %} selected {% endifequal %}> {{ item }} </option>
{% endfor %}
</select>
<script type="text/javascript">
$(".toChange").click(function(){
$.ajax({
type: 'POST',
});
});
编辑1:添加views.py并修改我的下拉列表以正确反射(reflect)它,因为我可能过度简化了我的示例。
def MyView(request):
result_r = request.POST.get('reg')
if request.method == 'POST' and request.is_ajax:
result_r = request.POST.get('reg')
query_results = data_immo.objects.all()
regions = data_immo.objects.values_list("nom_reg", flat=True).distinct().order_by('nom_reg')
departements = data_immo.objects.values_list("insee_dep").filter(Q(nom_reg=result_r)).distinct()
query_results_dict = {
'query_results': query_results,
'regions': regions,
'departements': departements,
'reg': result_r
}
return render(request,'home.html', query_results_dict)
为什么它适用于按钮而不是下拉菜单?我对此真的很陌生,所以请弄清楚哪里出了问题。谢谢!
最佳答案
您需要使用change
<select>
情况下的事件
$(".toChange").on('change', function(){ ... })
关于javascript - 当我的下拉列表的值发生变化时,如何触发 Javascript/AJAX 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60569052/