Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何修复此问题,JavaScript错误:document.forms。null不是一个对象_Javascript - Fatal编程技术网

如何修复此问题,JavaScript错误:document.forms。null不是一个对象

如何修复此问题,JavaScript错误:document.forms。null不是一个对象,javascript,Javascript,在我的jsp页面中,我发现脚本错误错误消息是:文档。表单[0]为空,不是对象。当我单击注销时。注销工作正常,并重定向到default.jsp。但是我的default.jsp没有显示任何内容,只是一个空白页面。我检查了default.jsp页面的查看源代码。整个页面未加载。它只加载到body标签的第1行。下面是default.jsp的代码。 <! doctype html> <html language="en"> <%@ page language="jav

在我的jsp页面中,我发现脚本错误错误消息是:文档。表单[0]为空,不是对象。当我单击注销时。注销工作正常,并重定向到default.jsp。但是我的default.jsp没有显示任何内容,只是一个空白页面。我检查了default.jsp页面的查看源代码。整个页面未加载。它只加载到body标签的第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>

函数closeWarning(){
document.forms[0].reset();
}
//页面加载到这里
//---身体其他部位----

请提出一些解决方法。谢谢。

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

您决不能无条件地假设存在某些东西(如集合成员,如
表单[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();
}

for(var i=0;i@greut,感谢您的回复。您的意思是我应该像var forms=document.getElementsByTagName('myForm')那样使用它吗;。如何迭代此链接,请给我任何链接的参考。感谢Tomalak,我现在使用了您的建议,我没有收到任何错误,但页面上仍然没有显示任何内容。页面仍然加载到标记的第1行。@Kmme83您确定您的JSP输出合理的HTML吗?您检查了吗?JSP输出正确的HTML,但不是ev每次。这是5次1次中的一次,它没有显示任何东西