输入按钮在我的闪亮应用程序中不起作用

时间:2015-04-19 07:59:32

标签: html r button shiny

我创建了一个闪亮的应用程序。但输入按钮不是被动的。 以下是代码的快照:

服务器

  A<-reactive({
    x<-input$RunModel
    quit()##Their is another function here, i wrote quit() just for ilustration
  })

HTML:

    <INPUT style="background-color:#143d4d;color:white;" onclick="newDoc(this.value)" TYPE="button" id="RunModel" class="btn btn-primary" VALUE="Run Model"/>

但不幸的是这个按钮不是被动的。我在网上搜索,发现它应该可以工作。发生了什么事?

2 个答案:

答案 0 :(得分:1)

我弄明白该怎么做。
使用observeEvent方法。这是代码的快照:

  observeEvent(input$RunModel,label ="Write a label for debugging",function() {
   quit()
  })

现在,当我点击&#39; RunModel&#39;按钮它将激活observeEvent。 并退出应用程序。

答案 1 :(得分:1)

您的被动问题是,您没有返回任何值。当您按&#34;输入&#34;您的应用按钮,必须返回一些值才能显示。给予该值以反应 Sahring server.r的一部分:

<!DOCTYPE html>
<html>

<head>
  <link rel="stylesheet" href="style.css">
  <script src="script.js"></script>
</head>

<body>
  <form>
    <input type="text" name="text" />
    <input type="file" name="file" accept="image/*" />
    <input type="submit" />
  </form>
  <script>
    var form = document.forms[0];

    form.onsubmit = function(e) {
      e.preventDefault();
      var data = new FormData(this);
      var dataURL = "data:text/html,";
      var html = "<!DOCTYPE html><html><body>";
      for (prop of data.keys()) {
        if (prop === "text") {
          var span = document.createElement("span");
          span.innerHTML = prop + ":" + data.get(prop);
          html += span.outerHTML;
        } else {
          var img = document.createElement("img");
          var reader = new FileReader();
          reader.onload = function(event) {
            img.src = event.target.result;
            html += img.outerHTML;
          };
          reader.onloadend = function() {
            html += "</body></html>";
            dataURL += encodeURIComponent(html);
            var doc = window.open(dataURL, "_blank", "doc");
          }
          reader.readAsDataURL(data.get(prop));
        }
      }

    }
  </script>
</body>

</html>