如何解决这个问题,JavaScript Error:document.forms。是null而不是Object

时间:2012-01-13 12:54:41

标签: javascript

在我的jsp页面中,我收到脚本错误。 错误消息是:document.forms [0]为null而不是对象。当我点击SignOut时。 sign out工作正常,重定向到default.jsp。但是我的default.jsp没有显示任何空白页面。我查看了default.jsp页面的查看源。整个页面未加载。它只加载到正文标记的第1行。以下是 default.jsp的代码。

 <! doctype html>
 <html language="en">
 <%@  page language="java" contentType="text/html" %>
<%@ session ="false" %>

<head>
<script type="text/javascript">

function closeWarning(){

        document.forms[0].reset();

 }
     </script>
</head>

 <body onLoad="closeWarning();" class="page-design">// page loaded till here
 <jsp:include flush="true" page="/myCart/header.jsp"/>
//---other component of body----
 </body>

请建议如何解决此问题。谢谢。

2 个答案:

答案 0 :(得分:0)

使用var forms = document.getElementsByTagName('form');代替document.forms,然后迭代它们以重置它们。我很确定你的页面中可能只有不到3个表单(在这种情况下,甚至不是一个)。

答案 1 :(得分:0)

你绝不能无条件地假设事物(如集合成员,如forms[0])存在。在代码中执行此操作是不好的样式,因为它会触发运行时错误。

要么在调用方法之前测试它们的存在:

if (document.forms[0]) {
  document.forms[0].reset();
}
// ...and two more

或者您使用一种不易出错的方法来重置每个现有表单 - 在本例中为循环。

for (var i=0; i<document.forms.length; i++) {
  document.forms[i].reset();
}

我推荐后者。