HTML5输入=时间不会通过javascript设置

时间:2015-01-11 21:27:19

标签: javascript html5

我遇到HTML5表单字段的问题,我需要字段(时间)将每秒更新为当前时间,更新代码每秒通过setInterval调用,即HTML5表单元素:

<form name="process">
    <input name="p_time" type="time" value="<?php echo date("H:i:s");?>" />
    //...
</form>

当我尝试更新时: document.forms.process.p_time.value = current.time.slice(17,25); 显示仍然是PHP所做的设置,类型字符串数据的格式与00:00:00相同,但它拒绝从原始时间开始。变量current.time是UTC格式的字符串,对应于: ddd,dd mmm,yyyy hh:mm:ss +00:00 GMT 种类。

javascript是一个简单的例程,它会在完整版中更新

元素

current = {
    now:function(){ return new Date(); },
    time:0,
    tick:function(){
        current.time = current.now().toUTCString();
        document.forms.process.p_time.value = current.time.slice(17,25);
        current.clock();
    },
    clock:function(){
        current.target.innerHTML = current.time.slice(0,25);
    },
    auto:setInterval(current.tick,1000)
}

我不想做的是通过页面刷新刷新页面。

1 个答案:

答案 0 :(得分:2)

这应该有效!:http://jsfiddle.net/d9vg5yhL/1/

<form name="process">
    <input name="p_time" id='time' type="time" value="" />
</form>

使用Javascript:

function startTime() {
    var today=new Date();
    var h=today.getHours();
    var m=today.getMinutes();
    var s=today.getSeconds();
    h = checkTime(h); 
    m = checkTime(m);
    s= checkTime(s);
    document.getElementById('time').value = h+":"+m+":"+s;
    var t = setTimeout(function(){startTime()},1000);
}

function checkTime(i) {
    if (i<10) {i = "0" + i} // add zero in front of numbers < 10
    return i;
}

startTime();