R 传单弹出窗口中的提交按钮不';t在有光泽的环境中触发观察事件
我需要解决这个问题。 我在弹出窗口中有一个提交按钮。单击标记时,输入的$map\u marker\u click$id现在包含所单击标记的id 弹出窗口中有一个提交按钮。单击提交按钮时,我想将输入$map\u marker\u click$id保存到变量中。使用oberserveEvent或EventResponsive对我都不起作用 这是代码,另存为app.RR 传单弹出窗口中的提交按钮不';t在有光泽的环境中触发观察事件,r,shiny,leaflet,R,Shiny,Leaflet,我需要解决这个问题。 我在弹出窗口中有一个提交按钮。单击标记时,输入的$map\u marker\u click$id现在包含所单击标记的id 弹出窗口中有一个提交按钮。单击提交按钮时,我想将输入$map\u marker\u click$id保存到变量中。使用oberserveEvent或EventResponsive对我都不起作用 这是代码,另存为app.R 库(闪亮) 图书馆(单张) df% 添加标记(layerId=~id,popup=~paste(“,Text,” 选择位置“)) }
库(闪亮)
图书馆(单张)
df%
添加标记(layerId=~id,popup=~paste(“,Text,”
选择位置“))
})
id1问题可能是Shiny不知道您正在添加按钮,因此没有绑定
一个肮脏的伎俩可能是在按钮上添加一个onclick
函数,告诉Shiny它已被单击:
例如:
<button onclick='Shiny.onInputChange(\"button_click\", Math.random())' id='selectlocation' type='button' class='btn btn-default action-button'>Select Location</button>
选择位置
此JS函数将随机数发送到Shiny,您可以在server.R
中使用input$button\u单击
访问它
然后,您可以使用input$按钮,单击eventReactive
正确的方法可能是在底部使用shinny.unbindAll()
和shinny.bindAll()
,但我不知道如何在这里做到这一点。作为旁注,您正在创建具有相同id的按钮,id对于HTML元素应该是唯一的,因此您可以将标记号添加到id中。谢谢。这很有效。我相信在使用javascript添加元素时会使用bindAll和unbindAll方法。在这里,我直接添加为字符串
<button onclick='Shiny.onInputChange(\"button_click\", Math.random())' id='selectlocation' type='button' class='btn btn-default action-button'>Select Location</button>