div在页面加载时正确隐藏,但需要在单击后退按钮时显示

时间:2013-01-25 19:53:23

标签: javascript

我正在设计的html表单上有几个要隐藏在页面加载上的div。一些包含文本字段,一些包含下拉框。根据在表单中单击某些单选按钮的时间显示。我正在使用javascript来隐藏div。这是我正在使用的代码:

<script language="JavaScript"> 

 function start() {
 hide('hideablearea');
 hide('nontenant');
 hide('conftype');
 hide('rec_roomlayout');
 hide('req_roomlabel');
 hide('req_roomdrpdwn');    
}
window.onload = start;
</script>

完美无缺。我的问题是...当提交表单并且出现错误(例如,用户忘记填写必填字段)并单击后退按钮时,此功能再次触发并隐藏所有内容...我想要隐藏的div在这一点上有信息显示。关于如何实现这个的任何想法?

提前致谢!

K

2 个答案:

答案 0 :(得分:0)

如果您显示错误消息,则可能需要重新考虑您的设计,用户需要单击返回以转到上一页并更正信息。上一页没有错误消息的概念。我可以看到两种方法来纠正这个问题。

1)在JavaScript中执行所有错误检查

如果您在脚本中实现错误处理,则可以在提交页面之前立即通知用户错误和缺少信息。如果一切都结束,您只会提交表格。

2)在回发后重新显示表单

当用户提交表单时,您需要在服务器上执行必需的错误检查。然后,您将使用所有用户输入的信息再次重新呈现表单,并显示错误消息。在这个页面上,你会写一些类似的东西:

<script>var hasErrors = true;</script>

如果页面有错误,您的客户端脚本可以避免隐藏相关信息。用户无需点击后退按钮来纠正错误。

答案 1 :(得分:0)

您可以将id属性添加到您的div中,然后控制您的div是否有要显示的消息然后您没有隐藏它们。

像这样:

<script type="text/javascript">
    function start() {
        if (document.getElementById('hideablearea') == "") {
            hide('hideablearea');
        }
        ...
    }
</script>