如何清除输入后点击按钮提交在Dash?



我正在尝试清除dcc。在点击并返回带有提交按钮的结果后输入dash,我不能这样做。我不知道我做错了什么,你能帮帮我吗?

我已经读了这个链接:

  • https://community.plotly.com/t/how-to-reset-the-n-clicks-of-a-button-and-value-of-the-input-text-box-after-the-every-callback-please-help/29571
  • https://dash.plotly.com/basic-callbacks。

这是我提交的代码:

html.Div(children=[
html.Div(children=[
html.P('Requester', className='Requester'),
dcc.Input(id='requester', value='', placeholder='Enter the requester', type='text'),
html.Div(id='my-requester'),
]),
html.Button('Submit', id='submit-val', n_clicks=0),
html.Div(id='container-button-basic',
children='Enter a value and press submit')    
]),
]
)
@app.callback(
Output('container-button-basic', 'children'),
Input('submit-val', 'n_clicks'),
State('requester', 'value')
)
def update_output(n_clicks, requester):
if n_clicks > 0:
print(requester)
return [n_clicks, requester]

我只是想在点击提交后清除一个文本框,或者在最坏的情况下做一个清除按钮来清除我在破折号中的文本框。

coralvanda的答案是正确的。我评论只是为了补充一些信息。

如果你有多个输入框想要清除,你必须添加多个额外的输出,你也必须添加多个"。例如,假设您还有两个输入框,它们的id分别是extraInput1和extraInput2,那么您需要添加的内容如下:

Output('container-button-basic', 'children'),
Output('requester', 'value'),
Output('extraInput1', 'value'),
Output('extraInput2', 'value'),  
Input('submit-val', 'n_clicks'),
State('requester', 'value')

,并将返回语句转换为:

return [n_clicks, requester], '', '', '', ''

重要的是,返回语句中的项的顺序与输出的顺序相同。例如,下面的代码不能工作:

return '', '', '', '', [n_clicks, requester]

你只需要添加第二个Output到你的回调,像这样:

Output('requester', 'value')

并让回调返回另一个值,并使其为空字符串。下面是一个例子:

return [n_clicks, requester], ''

最新更新