我有一个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;
描述代码:
首先我要设置我的变量。 然后Flask代码检查是否已经通过表单传递了变量。这是我获取最新选择值的一种方式(从python代码中的POST我把变量抛回,不优雅但工作...... :-))
我称之为我的功能。
为了填充我的列表,我使用一个完美运行的.getJSON并正确填充我的列表。
问题在于,无论何时更改字段的值并刷新数据(列表都采用创建图形的形式),我都会丢失所选字段。
所以我想将列表设置为&#34; book&#34;的前选择数据。名单。 我使用了几个console.log,似乎我无法指向列表......我也尝试过dropdown.book.val的几种变体(&#34; ...&#34;)但是相同,即使没有错误它无法正常工作。
如果您有任何关于我应该如何进行的提示?我想我应该尝试指向列表,但不知道该怎么做......
亲切的问候,
查尔斯