1

我正在尝试通过单击在 Otree 上的数据库中保存时间戳。我尝试使用不同的代码。

第一个是这个

function myFunction() {
    var n = Date.now();
document.getElementById("demo").innerHTML = n;
}

document.getElementById('n').value;

我将下一个代码放在 html 中:

 <p style="text-align: center;"><button class="btn btn-primary btn-large" onclick="myFunction()"  name="offer_accepted" value="True">&nbsp;A</button> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <button class="btn btn-primary btn-large"  onclick="myFunction()" name="offer_accepted" value="False">B</button></p>

下一个是这样的:

function record_current_time(){
   var current_time = new Date();
   current_time = current_time.getTime()
   document.getElementById("id_currentTime").setAttribute("value", current_time)
}

window.onload = record_current_time;

并将下一个代码放入我的 html 中:

  <input type="hidden" name="currentTime" id="id_currentTime"/>

在这两种情况下,我的数据库中都没有得到任何东西。

有人能帮我吗

4

1 回答 1

0

您的第一个代码不起作用有两个原因:

  • 您使用的 ID 不存在:“demo”
  • 如果你用 .value 替换 .innerHTML,你的代码就可以工作。请参阅此处的讨论。

关于第二次尝试,此命令将起作用:

window.onload = function() {
    record_current_time();
}

与页面顶部的脚本一起使用的另一种可能性是:

$(document).ready(function(){
        function record_current_time(){
           var current_time = new Date();
           current_time = current_time.getTime();
           document.getElementById('id_currentTime').value = current_time;
        }

        record_current_time();
});

但是,您也可以将脚本放在页面底部。然后,当您执行脚本时,所有元素都将被加载。

于 2021-03-05T19:36:16.093 回答