当前位置: 代码迷 >> python >> 我可以使Django表单ChoiceField可滚动吗?
  详细解决方案

我可以使Django表单ChoiceField可滚动吗?

热度:71   发布时间:2023-06-13 15:12:12.0

我有Django形式的ChoiceField下拉菜单。 它的时间从9:00 AM到5:30 PM-大约18个项目。 当某人单击下拉菜单时,它将立即显示所有值。 我想做的是只显示3个或4个值,并在右侧显示滚动条,以便用户进行滚动。 我想要这种方式的原因是因为它占用的空间更少,并且看起来更好。 无论如何要做到这一点? 这是我到目前为止的内容:

MY_CHOICES = (
        ('1', '9:00AM'),
        ('2', '9:30AM'),
        ('3', '10:00AM'),
        ('4', '10:30AM'),
        ('5', '11:00AM'),
        ('6', '11:30AM'),
        ('7', '12:00PM'),
        ('8', '12:30PM'),
        ('9', '1:00PM'),
        ('10', '1:30PM'),
        ('11', '2:00PM'),
        ('12', '2:30PM'),
        ('13', '3:00PM'),
        ('14', '3:30PM'),
        ('15', '4:00PM'),
        ('16', '4:30PM'),
        ('17', '5:00PM'),
        ('18', '5:30PM'),
    )

    my_choice_field = forms.ChoiceField(choices=MY_CHOICES)

那是一个内置的浏览器控件; 没有办法使其可滚动。 唯一要做的是将其替换为自定义Javascript小部件。 您可能想研究完全做到这一点的 ; 有一个库,该库实现了可在您自己的表单中使用的表单小部件。

也许可以,实现和js库: :

您可以按所需的高度修改CSS

.select2-container--default .select2-results>.select2-results__options {
max-height: 200px;
overflow-y: auto;

}