Jquery 在HTML选择输入中将Google App Engine数据存储值显示为选定选项
我有一个值存储在Google App Engine数据存储中,从下拉选择控件中选择 但每次我加载html页面时,它都不会显示存储的数据存储值。相反,它显示了原始的下拉选择,没有选择任何选项 HTML: 请注意,我只在数据存储中存储用户值部分,例如a,但我希望使用名称部分,例如Mr a。这可能吗 非常感谢 更新: 抱歉说不清楚。我使用的是jinja2,模板值p是从模型s中提取的Jquery 在HTML选择输入中将Google App Engine数据存储值显示为选定选项,jquery,python,google-app-engine,Jquery,Python,Google App Engine,我有一个值存储在Google App Engine数据存储中,从下拉选择控件中选择 但每次我加载html页面时,它都不会显示存储的数据存储值。相反,它显示了原始的下拉选择,没有选择任何选项 HTML: 请注意,我只在数据存储中存储用户值部分,例如a,但我希望使用名称部分,例如Mr a。这可能吗 非常感谢 更新: 抱歉说不清楚。我使用的是jinja2,模板值p是从模型s中提取的 <select name="items"> <option>{{ p.user }}&l
<select name="items">
<option>{{ p.user }}</option>
</select>
并尝试将其放入jQuery中:
var tlist = '<option>{{ p.user }}<\/option>';
但是没有效果,它在一瞬间显示了用户价值的一部分。本质上,我想问一下,在我的HTML和jQuery中,我应该把Google App Engine数据存储值放在什么地方。谢谢
更新2:
我将JavaScript更改为
(function($) {
$.fn.changeType = function() {
var data = [{"user":"a","name":"Mr A"},
{"user":"b","name":"Miss B"},
{"user":"c","name":"Mrs C"}];
var tselected = $("select option:selected").val();
var tlist = '<option>Select<\/option>';
$.each(data, function(i,d){
if (d.user === tselected)
tlist += '<option value="' + d.user + 'selected="selected">' + d.name + '<\/option>';
else
tlist += '<option value="' + d.user + '">' + d.name + '<\/option>';
});
$("select", this).html(tlist);
};
})(jQuery);
但tselected不会返回当前选定的值。有什么想法吗?谢谢。使用输入隐藏值解决问题。但是您似乎没有任何代码从数据存储中获取值并显示它,所以它当然只是显示默认值。你到底在问什么?谢谢丹尼尔。这是关键。如何从数据存储中获取值并显示它我正在使用jinja2。使用输入隐藏值解决。谢谢
<select name="items">
<option>{{ p.user }}</option>
</select>
var tlist = '<option>{{ p.user }}<\/option>';
(function($) {
$.fn.changeType = function() {
var data = [{"user":"a","name":"Mr A"},
{"user":"b","name":"Miss B"},
{"user":"c","name":"Mrs C"}];
var tselected = $("select option:selected").val();
var tlist = '<option>Select<\/option>';
$.each(data, function(i,d){
if (d.user === tselected)
tlist += '<option value="' + d.user + 'selected="selected">' + d.name + '<\/option>';
else
tlist += '<option value="' + d.user + '">' + d.name + '<\/option>';
});
$("select", this).html(tlist);
};
})(jQuery);