2012-02-28 205 views
0

我正在研究一个表单,它有一小部分隐藏并显示div,然后提交到一个页面。我的问题是,当我隐藏div并提交时,然后单击后退按钮,div不会隐藏。这里是我的代码:隐藏/显示后退按钮

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title></title> 
    <script type="text/javascript" src="http://nix.lv/history/jquery-1.2.3.min.js"></script> 
    <script type="text/javascript"> 

     jQuery(document).ready(function ($) { 

      $('#Contact').change(function() { 
       if ($(this).val() == ('Yes')) { $('#sentBy').show(); } 
       else { $('#sentBy').hide(); } 
      }); 

     }); 
</script> 
</head> 

<body> 
<form method="post" action="http://google.com"> 
<div><p><label for="Contact">Want an answer? </label><br /> 
        <select size="1" name="Contact" id="Contact" onchange="toggle('hide', 'sentBy');"> 
         <option value="Yes" selected="selected">Yes</option> 
         <option value="No">No</option> 
        </select></p> 
        </div> 
    <div id="sentBy"> 
     this is a test 
    </div> 
    <input type="submit" value="wow"/> 
</form> 
</body> 
</html> 
+1

'HTTP'是一个无状态'protocol' - 按'submit'你当你提交你的页面的全新副本形式失去状态... – xandercoded 2012-02-28 21:27:05

+0

。当然你的DIV不会被隐藏。 – 2012-02-28 21:27:21

+0

JS是客户端语言,当点击“返回”时,它不会记得选择了哪个选项,除非您使用'cookies'。 – 2012-02-28 21:27:47

回答

0

在文件准备,检查下拉列表的值,如果适当隐藏股利。试试这个编辑:

jQuery(document).ready(function ($) { 

     var shouldHideDiv = $('#Contact').val() != 'Yes'; 
     if (shouldHideDiv) { 
      $('#sentBy').hide(); 
     } 

     $('#Contact').change(function() { 
      if ($(this).val() == ('Yes')) { $('#sentBy').show(); } 
      else { $('#sentBy').hide(); } 
     }); 

    }); 
+0

不工作,但谢谢。 – mpora 2012-02-28 21:44:01

+0

感谢@Ofir Baruch为cookie的想法,它的工作原理。 – mpora 2012-02-28 22:42:39

+0

@ user1238850接受这个答案。不要忘记投票并接受答案。 – 2012-04-12 15:04:40