Ajax在变量填充之前执行

时间:2018-05-09 15:30:24

标签: javascript jquery ajax

我有一个chatjs条形图,我在其中定义了一个在其中有ajax调用的click事件。点击我也试图获得一个下拉菜单和单选按钮的值,这两个菜单都是bootstrap元素。

document.getElementById("myChart").onclick = function(evt) {

    var activeElement = myChart.getElementAtEvent(evt);
    var clickedElementIndex = activeElement[0]._index;
    var stype = myChart.data.labels[clickedElementIndex];

    $('.dropdown-menu a').find(function() {
        var mname = ($('#selected').text());
    });

    var listoption = ($('input[name=radioname]:checked', '#radioform').val());


    $.ajax({
        url: "{% url 'updatesession' %}",
        data: {
            stype: stype,
            listoption: listoption,
            mname: mname
        },
        success: function(data) {
            window.location = "{% url 'results' %}";
        }
    });

}

但我遇到的问题是在填充mname变量之前执行了ajax调用。然而,listoption变量确实已填充。如何在我的ajax调用之前填充变量。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试将ajax放入下拉菜单的功能中,如下所示:

$('.dropdown-menu a').find(function(){
    var mname=($('#selected').text());

    $.ajax(
    {
        url: "{% url 'updatesession' %}",
        data:{
              stype : stype,
              listoption : listoption,
              mname : mname
        },
        success: function( data )
        { 
            window.location = "{% url 'results' %}";
        }
    });
});

var listoption=($('input[name=radioname]:checked', '#radioform').val());