将JavaScript结果日期插入HTML表单字段 - “未定义”值?

时间:2014-12-09 14:19:55

标签: javascript html forms date time

我遇到HTML问题,无法在任何地方找到可靠的帮助。我有一个带有一些字段的HTML表单,我想将当前日期和时间插入两个表单字段。我使用了以下示例: Auto insert date and time in form input field? 并插入这样的JS代码(顺便说一句,这个代码片段也来自StackOverflow的一个问题):

<script type="text/javascript">
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
var hh = today.getHours();
var mn = today.getMinutes();
if(dd<10) {
    dd='0'+dd
} 

if(mm<10) {
    mm='0'+mm
} 
if(hh<10) {
    hh='0'+hh
}
if(mn<10) {
    mn='0'+mn
}
today = yyyy+'-'+mm+'-'+dd;
var now = hh+':'+mn;
document.write(today);
document.write(now);
</script>

此HTML代码应该在表单字段中插入日期和时间:

<p>Data: 
<input type="text" name="date" id="iddate" size="10" />
<script type="text/javascript">
document.getElementById('iddate').value = document.write(today);
</script>
</p>
<p>Godzina: <input type="text" name="time" id="idtime" size="5" />
<script type="text/javascript">
document.getElementById('idtime').value = document.write(now);
</script>
</p>

但结果如您所见[{3}}:字段旁边显示日期和时间,字段值为&#34;未定义&#34;。我不明白发生了什么。你能给我一些建议吗?在网站的顶部是document.write()函数的结果,它们看起来是正确的。

2 个答案:

答案 0 :(得分:0)

只需删除'document.write'。

像这样调用你的代码:

 document.getElementById('iddate').value = today;

并且像这样:

 document.getElementById('idtime').value = now;

document.write()使用指定的文本附加文档并返回undefined,因此将某些内容设置为该值,只是使其“未定义”

答案 1 :(得分:0)

当您尝试为javascript中的某个字段指定一些值时,您只需执行以下操作:

document.getElementById('yourId').value = value_to_assign;

并且不要使用document.write,因为document.write方法直接将字符串输出到页面中。

阅读有关document.write的事实:http://javascript.info/tutorial/document-write