我创建了一个简单的输入对象是这样的:如何在JavaScript中设置Bokeh中的输入文本字段的值?
self.dummy_text = TextInput()
self.dummy_text.css_classes = ['dummy_text']
而且我想与其他控制恢复此字段的值。例如这个按钮:
self.dummy_button = Button(label="Foo", button_type="success")
self.dummy_button.css_classes = ['dummy_button']
如果我改变手工输入文本字段的值,该按钮获得输入文本值好。但是,如果我修改由JavaScript(jQuery的)的值这样的价值没有收到所有:
$("#bokeh_iframe").contents().find(".dummy_text input").val('text value')
我已经打开的背景虚化在iframe id为bokeh_iframe
。我需要使用find
,因为直接选择器不工作。最后,我调用按钮单击方法是这样的:
$("#bokeh_iframe").contents().find(".dummy_button button").get(0).click();
按钮的方法是这样的:
def dummy_button(self):
dummy_text_value = self.dummy_text.value
这是怎么回事?我需要告诉散景以其他方式同步数据吗?我是否需要找到另一种通过JavaScript填充字段的方法?
注:我需要做此解决方法从外部应用程序(电子,即是建立与节点)
注2运行在背景虚化服务器的一些行动:另一个要素:prevObject: jQuery.fn.init(1)
出现与输入和按键对象,可能是这个问题?这就是为什么我需要使用get(0)
我感谢你的帮助。你的意思是像这样使用args属性吗? 'CustomJS(args = dict(source = source),code =“”“[...这种方式我会把参数从Python发送到JavsScript。实际上,我打算做相反的事情,从JavaScript(从外部应用程序,而不是CustomJS代码)向Python方法发送一个参数。这就是为什么我用这个参数填充虚拟文本字段。有没有更好的方法来做到这一点? – ChesuCR
我测试了'trigger('change')'解决方案,但它不起作用:( – ChesuCR
我也试过' window.document.Bokeh.index'解决方案,它的工作原理是这样的:var models = window.Bokeh.index [Object.keys(window.Bokeh.index)[0]]。model.document。 _all_models; var input_dummy_text = models [dummy_text_id]; input_dummy_text.value ='new value'' – ChesuCR