【发布时间】:2012-01-28 09:35:05
【问题描述】:
在我的应用程序中,我有一个为某些日期设置默认值的 javascript。执行此操作的函数如下所示:
<script language='javascript'>
setNow(document.getElementById('date_86')); //line 166
setNow(document.getElementById('time_86'));
setNow(document.getElementById('date_0'));
setNow(document.getElementById('time_0'));
function setNow(element) { //line 173
date = new Date();date.setHours(date.getHours() + 3);
element.valueAsDate = date;
}
...
</script>
html:
<input type='date' id='date_86' name='date_86' />
有趣的是,直到最近它还可以正常工作,但现在不行了,Chrome 的控制台显示:
Uncaught Error: INVALID_STATE_ERR: DOM Exception 11
setNowmanual.html:173
(anonymous function)manual.html:166
如果我理解正确的话,我真的不明白为什么 setNow 不是这个 DOM 中的对象。
PS:当我交换声明和调用时发生同样的事情,只是控制台报告中的行号不同。
【问题讨论】:
-
你能给我们看一些 HTML 吗?
-
附注:如果您使用的是 HTML5,则应将
<script language='javascript'>更改为<script type="text/javascript">。language属性在 HTML4 中已被弃用。 -
@TimVermaelen:有问题的页面很大,哪些部分是相关的?作为参数传递给 setNow() 函数的元素声明为
-
@ÁlvaroG.Vicario 为什么它是错误的?对整个表单的调用和对该函数的调用由服务器端脚本生成,当服务器端有日期时,作为值插入,为空时,由javascript生成.
-
@ÁlvaroG.Vicario 我确实将 javascript 的开始标签更改为
标签: javascript exception dom