Div内的下拉列表(带id)(也带id)设置值时出现问题

2024-05-14 08:19:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用daq.boolean开关来显示或隐藏下拉列表。为了隐藏所述下拉列表的html.Label,我给了Div一个id。这样我可以将Div的样式从{'display':'block'}更改为{'display':'none'},并隐藏标签和下拉列表

我的问题:

->;不给div一个id,只会隐藏下拉列表,而不会隐藏标签

——>;给div一个id会导致我的下拉值(value=5)出现此错误:

Exception has occurred: TypeError string indices must be integers

相关代码:

html.Div([
    daq.BooleanSwitch(
    id='hour_or_day',
    on=True,
    label='Hour/Day',
    labelPosition="bottom",
    color="#002255")])

html.Div( id= 'hide_choosehour' [
    html.Label('Choose hour:'),
    dcc.Dropdown(
    id='hourChoice',
    options=[{'label': str(i), 'value': str(i)} for i in range(24)],
    value = 5,
    )
], style= {'display':'block'})


@app.callback(
   Output('hide_choosehour', 'style'),
   Input('hour_or_day', 'on')
)

def show_hide_ChooseHour(on):
    if on:
        return {'display': 'none'}
    return {'display': 'block'}

if __name__ == '__main__':
    app.run_server(port=8050, debug=True)

我找到了一种解决方法,即不使用标签或hmtl.p(因此不再需要div id),而是使用带有所需文本的占位符。不过还是有点奇怪,因为最好是一个标签。欢迎任何建议,如果有任何不清楚的地方,请提醒我


Tags: divnoneid列表valueonhtmldisplay
1条回答
网友
1楼 · 发布于 2024-05-14 08:19:23

将div的id移到括号之后而不是之前解决了我的问题

html.Div([
    html.Label('Choose hour:'),
    dcc.Dropdown(
    id='hourChoice',
    options=[{'label': str(i), 'value': str(i)} for i in range(24)],
    value = 5),
],id='hide_choosehour', style= {'display':'block'})

相关问题 更多 >

    热门问题