2012-02-28 230 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