当我的下拉菜单值更改时如何触发Javascript / AJAX代码?

问题描述 投票:0回答:1

我有一个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', 
        }); 
    });

EDIT1:添加views.py并修改我的下拉菜单以正确反映它,因为我可能简化了我的示例。

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)

为什么与按钮而不是下拉菜单一起使用?我真的很陌生,所以一定要弄清楚哪里出了问题。谢谢!

javascript jquery ajax dropdown
1个回答
3
投票

[在change的情况下,您需要使用<select>事件

$(".toChange").on('change', function(){ ... })
© www.soinside.com 2019 - 2024. All rights reserved.