通过Django中的ajax调用发出填充选择框

时间:2015-01-06 20:17:48

标签: javascript jquery ajax

我遇到了一个创建级联选择框的问题(后端Django - 虽然我认为这部分大部分已经解决)。我有以下javascript代码改编自此stackoverflow response

$(document).ready(function(){
$('select[name=experiment]').change(function(){
    experiment_id = $(this).val();
    request_url = '/admin/get_measurements/' + experiment_id + '/';
    $.ajax({
        url: request_url,
        success: function(data){
            $.each(data, function(){
                $('select[name=measurement_a]').append('<option value="' + this.key + '">' + this.value +'</option>');
        //          $('select[name=measurement_a]').append($("<option />").val(this.key).text(this.value))
            });
        },
        return: false
})
})
});

在我的项目中,我选择了一个实验,该实验触发对“get_measurements”功能的调用并接收应该填充测量选择框的“测量”列表。目前,当我选择实验时,我会按预期看到json响应:

{1: "MyFirstMeasurment", 2: "MySecondMeasurement"}

测量选择框接收了2个新选项,但是它们都具有文本“未定义”而不是“MyFirstMeasurement”和“MySecondMeasurement”。我猜这在我的代码中很简单,感谢您的帮助,如果您需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

事实证明,我需要做一些事情来解决这个问题,谢谢你的帮助和提示。这是最终的代码。

$(document).ready(function(){
$('select[name=experiment]').change(function(){
    experiment_id = $(this).val();
    request_url = '/admin/get_measurements/' + experiment_id + '/';
    $.ajax({
        url: request_url,
        success: function(data){
            $.each(data, function(key, value){

                $('select[name=measurement_a]').append("<option value='" + value + "'>" + value +</option>");

            });
        },
        return: false
})
})
});