为什么不't R Shiny接受jQuery设置的文本输入
Why doesn't R Shiny accept text input set by jQuery?
我正在尝试构建一个没有ui的R Shiny应用程序。R文件,并差点使其工作,但跌跌撞撞地越过了最后一道障碍。以下是问题的最简单的工作演示:
- index.html文件定义了两个按钮,一个名为"RAND",由jQuery控制,另一个名为由"ADD1",由R Shiny控制。我还有两个名为"temp"answers"out"的文本框
- 这个伪程序的目标是让"RAND"将一个随机数加载到"temp"中,然后让"ADD1"将存储在"temp"中的值递增1
- "RAND"按钮工作正常,但"ADD1"按钮产生"NA"。有趣的是,如果我手动修改"temp"值,然后再次单击"ADD1",它确实会产生正确的值
- 我的问题是:为什么程序会像现在这样运行?如何在不必手动重新键入"temp"内容的情况下使"ADD1"工作
这是我的index.html:
<html>
<head>
<link rel="stylesheet" type="text/css" href="jquery-ui.css"/>
<script src="jquery.js" type="text/javascript"></script>
<script src="jquery-ui.js" type="text/javascript"></script>
<script src="test.js" type="text/javascript"></script>
<script src="shiny.js" type="text/javascript"></script>
</head>
<body>
<div id="RAND" name="RAND">RAND</div>
<div id="ADD1" name="ADD1" class="action-button">+1</div>
<p></p>
<div class="form-group shiny-input-container">
<input id="temp" name="temp" type="text" class="form-control"/>
</div>
<p></p>
<div id="out" class="shiny-text-output"></div>
</body>
</html>
这是服务器。R文件:
library(shiny)
shinyServer(function(input,output,session){
observeEvent(input$ADD1, {
output$out <- renderText({ as.numeric(input$temp) + 1 })
});
});
最后,这是我的Javascript代码(test.js):
$(function(){
$("#RAND").button()
$("#RAND").click(function() {
$("#temp").val(Math.random());
});
$("#ADD1").button()
});
多亏了warmfoverflow的建议,我成功地回答了自己的问题:
index.html保持不变
服务器.R变为:
library(shiny)
shinyServer(function(input,output,session){
observe({
input$randval
})
observeEvent(input$ADD1, {
output$out <- renderText({ as.numeric(input$randval) + 1 })
})
})
test.js变成:
$(function(){
$("#RAND").button()
$("#RAND").click(function() {
val = Math.random();
$("#temp").val(val);
Shiny.onInputChange("randval",val);
});
$("#ADD1").button()
});
请注意,存储在$(#temp)中的值并没有真正用于任何事情,可以删除。我只是把它留在代码中,以便与我对问题的最初表述进行比较。
相关文章:
- 需要垫片设置-jquery.flot/jquery.flot.selection
- 是否可以在调用时动态设置Jquery Accordion的活动面板
- 无法在其他调用上设置jQuery对话框选项
- 如何在jquery ajax响应后设置jquery滑块的起始值
- 如何设置jQuery微调器的最大值和最小值
- 设置jquery按钮,而不是php错误和成功状态
- 设置jquery对话框的高度
- 如何动态设置jquery mobile'的minHour选项;s的日期框
- 如何正确设置jQuery日历小部件的区域设置
- 如何设置jQuery函数的动画's循环中的变量
- 设置 Jquery 对话框标题栏样式
- 如何使用JQuery.Load访问Div中加载URL的UL“id”,“name”等,以设置JQuery树视图
- 如何在页面加载时设置 jquery 切换关闭
- 根据 HTML 表单 ID 值动态设置 jquery 选择器
- 在 jquery 表单序列化变量中设置 jquery 延迟
- 设置 jQuery 动画的队列长度
- 从 html 数据设置 jquery 延迟
- 设置JQuery动画中的超时
- 根据 C# 值设置 jQuery cookie 的值
- 无法设置 jquery 对话框.InnerHtml(某些内容)无需刷新页面