在JQuery(+ Flask)中设置动态创建的下拉列表的值

时间:2017-06-27 15:11:38

标签: javascript jquery python list

我有一个Flask模板(不应该影响这个但只是为了清楚)。 我创建了一个相关的下拉列表:

一个包含两个选项的列表:#select_bu 基于第一个动态生成的一个列表。

代码下方:



<script type="text/javascript">

$(function() {

    // jQuery selection for the 2 select boxes
    var dropdown = {
        bu: $('#select_bu'),
        book: $('#select_book')
    };

    {% if book == ""  %}
    var booki = "{{book|safe}}";
    {% else %}
    var booki ="COXL";
    {% endif %}

    // call to update on load
    updateBook(booki);

    // function to call XHR and update county dropdown
    function updateBook(booki)
        {
            var send = {bu: dropdown.bu.val()};
            dropdown.book.attr('disabled', 'disabled');
            dropdown.book.empty();
            $.getJSON("{{ url_for('pick_book') }}", send, function(data) {
                                $(data).each(function(item,couple)
                                {
                                    dropdown.book.append('<option value=' + couple.book +'>'+couple.book + '</option>');
                                });
                                });
            dropdown.book.removeAttr('disabled');

 // this is where I want to set the value of the list :
            $("#select_book > option").each(function() {
                                console.log($(this).text());
                                if ($(this).text() == "COXL") {
                                $(this).prop("selected", true);
                                }
             });



        }

    dropdown.book.val(booki);

    // event listener to state dropdown change
    dropdown.bu.on('change', function() {
        updateBook(booki);
    });

});
</script>
&#13;
&#13;
&#13;

描述代码:

首先我要设置我的变量。 然后Flask代码检查是否已经通过表单传递了变量。这是我获取最新选择值的一种方式(从python代码中的POST我把变量抛回,不优雅但工作...... :-))

我称之为我的功能。

为了填充我的列表,我使用一个完美运行的.getJSON并正确填充我的列表。

问题在于,无论何时更改字段的值并刷新数据(列表都采用创建图形的形式),我都会丢失所选字段。

所以我想将列表设置为&#34; book&#34;的前选择数据。名单。 我使用了几个console.log,似乎我无法指向列表......我也尝试过dropdown.book.val的几种变体(&#34; ...&#34;)但是相同,即使没有错误它无法正常工作。

如果您有任何关于我应该如何进行的提示?我想我应该尝试指向列表,但不知道该怎么做......

亲切的问候,

查尔斯

0 个答案:

没有答案