2012-01-13 66 views
0

在我的jsp页面中,我得到脚本错误。 错误消息是:document.forms [0]为空不是一个对象。当我点击SignOut。注销工作正常,它重定向到default.jsp。但我的default.jsp不显示任何东西只是一个空白页面。我查看了default.jsp页面的源视图。整个页面未加载。它只装载到车身标签的第一行。以下是default.jsp的代码。如何解决这个问题,JavaScript错误:document.forms。是空的不是对象

<! 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> 

请建议一些如何解决这个问题。谢谢 。

回答

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(); 
} 

我推荐后者。

+0

感谢Tomalak我已经使用您的建议,现在我没有收到任何错误,但仍然没有显示在页面上。仍然将页面加载到标记的第一行。 – Kmme83 2012-01-16 12:37:04

+0

@ Kmme83你确定你的JSP输出了合理的HTML吗?你检查过了吗? – Tomalak 2012-01-16 12:49:47

+0

Jsp输出正确的html,但不是每次都输出。这是5次1次它不显示任何东西 – Kmme83 2012-01-16 18:22:30

0

使用var forms = document.getElementsByTagName('form');而不是document.forms,然后遍历它们以重置它们。我很确定你的页面可能少于3个表单(在这种情况下,甚至没有)。

+0

@ greut,谢谢你的回复。你的意思是我应该使用它像

。如何迭代这个请给我参考任何链接。 – Kmme83 2012-01-13 13:12:29

相关问题