如果晚上11点调用函数来改变表格输入值

时间:2013-01-27 14:22:58

标签: javascript forms date time

如果用户在晚上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肯定会被调用(仅用于测试),但日期的值不会增加。我不知道为什么这可以作为链接而不是作为一个功能。有谁看到我做错了什么?


最终有效:

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.");
}

1 个答案:

答案 0 :(得分:1)

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

或者在您的情况下,由于您已经在x中缓存了该元素,因此您可以使用x本身。