1

如果用户在当地时间晚上 11 点到 12 点之间使用我的网站(无论如何是系统时间),我需要更改HTML 表单中的值。

目前我这样做:

<a id="dayLink" class="tooltip" name="dayLink"  onclick='javascript: document.getElementById("day").value++; window.alert("date has been advanced by 1 day.");'>

这可行,但它要求用户查看链接,将鼠标悬停在链接上以阅读工具提示,然后单击链接以更改值。

我想自动执行此操作,以便它在用户甚至不知道的情况下在后台发生。

这是我尝试过的:

window.onload=function(){
 myMonthFunction();
 myDayFunction();

}



function myDayFunction()
{
    var d = new Date();
    var x = document.getElementById("day");
    x.value=d.getDate();

    y.value=hours[d.getHours()];

    if (y == 11){

      document.getElementById("day").value++; 
      window.alert("date has been advanced by 1 day.");

    }
}

window.alert肯定会被调用(只是在那里进行测试),但day 的值没有增加。我不确定为什么这可以作为链接而不是函数。有人看到我做错了什么吗?


最终起作用的是:

function myDayFunction()
{
    var d = new Date();
    var x = document.getElementById("day");
    x.value=d.getDate();

    var hours = d.getHours()

    if (hours == 23){

      document.getElementById("day").value++; 
      window.alert("date has been advanced by 1 day.");
}
4

1 回答 1

1

该变量y未在您发布的代码中定义。因此,当您尝试时y.value = ...它不会执行,因为 y 未定义。您可以通过在使用之前定义 y 来纠正它。

或者在您的情况下,由于您已经将那个元素缓存在 中x,您可以使用 x 本身。

于 2013-01-27T14:50:30.183 回答