背景 on_change
对象的TextInput
方法的当前功能是在键入所有文本然后按下其他键之后运行回调。我想知道是否可以将TextInput
对象配置为在键入/删除文本时运行回调。以下代码是一个最小的示例。
from bokeh.io import curdoc
from bokeh.layouts import widgetbox, column
from bokeh.models import TextInput, Button
button = Button(button_type='success')
ti = TextInput(title='enter text to enable button')
layout = column(
widgetbox(ti),
widgetbox(button))
button.disabled = True
def callback(attr, old, new):
if ti.value != '':
button.disabled = False
else:
button.disabled = True
ti.on_change('value', callback)
curdoc().add_root(layout)
这是相应应用程序的屏幕截图。
期望的行为是键入文本后立即激活该按钮。屏幕截图显示这没有发生。未显示出该按钮将在按下“ enter”键后变为活动状态。
答案 0 :(得分:1)
从Bokeh 1.0.4开始,第一次输入文本时不会触发任何事件。
这似乎是一个合理的功能,并且可能不太容易实现(对于首次贡献者来说是个好问题,需要一些指导),因此我建议提出一个GitHub issue来请求该功能。