【问题标题】:How to trigger the Javascript/AJAX code when the value of my dropdown changes?当我的下拉列表的值发生变化时如何触发 Javascript/AJAX 代码?
【发布时间】:2020-03-06 17:37:05
【问题描述】:

我有一个 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)

为什么它适用于按钮而不是下拉菜单?我对此真的很陌生,所以请知道出了什么问题。谢谢!

【问题讨论】:

  • 监听下拉菜单的变化,而不是点击。此外,您的 AJAX 请求没有设置 URL。
  • 我试过但什么也没做。我应该使用什么作为 URL?我的 html 页面的 URL?

标签: javascript jquery ajax dropdown


【解决方案1】:

&lt;select&gt;的情况下需要使用change事件

$(".toChange").on('change', function(){ ... })

【讨论】:

  • 不幸的是它没有用。知道缺少什么吗?
  • 发布您的完整代码以了解可能出现的问题。 “没用”是什么意思?
  • 刚刚发布了更多内容。如果您需要更多信息,请告诉我。
  • 我的错,事实上我的按钮不是触发 AJAX 代码,而是标准的 POST 请求,因此行为差异。谢谢!
猜你喜欢
  • 2020-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-18
相关资源
最近更新 更多