0

我正在尝试制作一个运行调查的小页面。我希望调查可以在页面内重复,但用户在进入页面时需要输入登录名。我正在尝试编写代码,以便他们填写登录信息,然后开始调查。我正在尝试使用一个 JSON 来提供 100 多个随机图像,每次用户完成调查应用程序时都会发送一个新图像。

因此,每次调用 start 函数时,都会运行调查函数。但是,它只运行大约 1 秒,而不是我想要的连续运行。当我玩弄页面的顺序并添加计时器时,我设法让调查运行一次,但在完成后不会自行重置。它似乎也没有从另一个函数中获取变量——我希望“计数”变量随着调查的重复完成而增加。它也没有拾取用户名变量,该变量是在外部“启动”函数内部创建的。

我认为我的问题与不了解函数和变量应该如何相互嵌套以及异步在 Javascript 中的工作方式有关。谁能指出我正确的方向?这是解决问题的 JSfiddle和代码片段:

//button Login
function serv (){

      Survey
          .StylesManager
          .applyTheme("modern");

          window.survey = new Survey.Model(json);

              survey
                  .onComplete
                  .add(function (result) {
                      count ++;
                      var PID = username;
                      var results = PID + "|||" + (keyname) + ":\n" + JSON.stringify(result.data, null, 3) + (count) ;
                      document
                          .querySelector('#surveyResult')
                          .textContent = results;
                  survey.clear();
                  survey.render();
                  });

              $("#surveyElement").Survey({model: survey});
      }

function start() {
    var username = document.getElementById("user_PID").value;
    alert("your PID is " + username);
    modal.style.display = "none";
    serv();
    }

var knlist = {}

var count = 13

var knx = ("kn" + count)

var keyname = (knlist[knx])

var mapilink = "https://images.mapillary.com/" + (keyname) + "/thumb-1024.jpg";

var json = {}

var modal = document.getElementById('id01');
4

0 回答 0