Bootstrap select 和 django 模板

Bootstrap select and django template

大家好!

我的 Bootsrap select 和我的 Django 模板有一个奇怪的行为。

我有一个带有编辑表单的用户配置文件模板,我在模板标签内添加了字段的当前值,如下所示:

<select id="id_bd_month" name="bd_month" class="selectpicker" data-width="100%" data-size="6">
<option value="{{ request.user.profile.bd_month}}" selected="selected"></option>
<option value=“01”>January</option>
<option value=“02”>February</option>
…

我有一个基本脚本:

$('.selectpicker').selectpicker('render');

最初,当我加载页面时,它显示 "Nothing selected"。但是如果我再次刷新它(F5),插件可以正常工作。

为什么我有这种奇怪的效果?

您应该将 selected 属性设置为所选 <option> 而不是空属性:

<select id="id_bd_month" name="bd_month" class="selectpicker" ...>
<option value="01">January</option>
<option value="02" selected="selected">February</option>

或者将选定的值传递给 selectpicker() 方法:

$('.selectpicker').selectpicker('render');
$('.selectpicker').selectpicker('val', '{{ request.user.profile.bd_month}}');

终于找到解决办法了!正如 catavaran 所说,这不是 Django 开发服务器问题。我只是误解了如何正确使用 'render' 和 'value' 方法。就我而言,解决方案很简单:

$('.selectpicker').val('{{ request.user.profile.bd_month }}');
$('.selectpicker').selectpicker('render');

感谢 catavaran 的帮助!