【问题标题】:Bootstrap select and django template引导选择和 django 模板
【发布时间】:2015-03-15 16:18:42
【问题描述】:

大家好!

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');

起初,当我加载一个页面时,它显示“未选择任何内容”。但是如果我再次刷新它(F5),插件就可以正常工作了。

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

【问题讨论】:

    标签: jquery django twitter-bootstrap


    【解决方案1】:

    您应该将selected 属性设置为选定的&lt;option&gt; 而不是空的:

    <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}}');
    

    【讨论】:

    • {{ request.user.profile.bd_month }} 返回我的生日月份数。正如它在文档中所说,我可以将自定义值与“渲染”方法一起使用。所以,我认为,selectpicker 必须采用这个数字,与另一个选项进行比较并添加 selected。
    • 感谢您的帮助,但还是不行。我认为主要原因是我使用的是标准的 django 开发服务器。
    • 不,这不是 django 问题。 user.profile.bd_month 的实际值是多少?
    • 对不起,我的错。您需要先调用“render”,然后再调用“val”。我确定了答案。顺便说一句,您示例中的引号字符是 ,但应该是 "'
    • 如果我使用'render'方法,我不需要使用'value'方法,尤其是在渲染之后。您的选择根本行不通!
    【解决方案2】:

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

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

    感谢 catavaran 的帮助!

    【讨论】:

      猜你喜欢
      • 2019-04-13
      • 2017-11-20
      • 2012-01-13
      • 2014-05-07
      • 2017-10-07
      • 2014-04-02
      • 2012-07-10
      • 2013-11-01
      • 2017-01-05
      相关资源
      最近更新 更多