2016-11-29 44 views
0

我有三個單選按鈕和三個下拉菜單,所有這三個無線電總是可見的,我有一個隱藏在下拉菜單中的腳本,如果無線電1被選中,它會顯示一個如果下拉菜單,和另一如果收音機2被選中等等。腳本停在重裝

$(function() { 
     $('input[type=radio]').each(function() { 
      var state = JSON.parse(localStorage.getItem('radio_' + this.id)); 

      if (state) this.checked = state.checked; 
     }); 
    }); 
    $(window).bind('unload', function() 
    { 
     $('input[type=radio]').each(function() 
     { 
      localStorage.setItem(
       'radio_' + this.id, JSON.stringify({checked: this.checked}) 
      ); 
     }); 
    }); 

這個腳本記住哪些無線電一次檢查,所以即使我刷新頁面,同一個被選中。這也意味着,總是有一個收音機被檢查!

我也有這個下面的腳本:

$(function() { 
     $("input[type='radio']").change(function() { 
      if ($(this).val() == 1) { 
       $("#exerVariNameS").show(); 
       $("#exerVariNameB").hide(); 
       $("#exerVariNameD").hide(); 
      } else if ($(this).val() == 2){ 
       $("#exerVariNameS").hide(); 
       $("#exerVariNameB").show(); 
       $("#exerVariNameD").hide(); 
      } else { 
       $("#exerVariNameS").hide(); 
       $("#exerVariNameB").hide(); 
       $("#exerVariNameD").show(); 
      } 
     }); 
    }); 

這不過是隱藏的下拉菜單,顯示只有一個連接取其無線電進行檢查,這就是,一,當頁面重新加載(或表單提交),即使收音機確實仍然被檢查,所有的下拉菜單都可以看到,我不知道爲什麼?腳本是否在頁面刷新時再次運行?當字段通過javascript代碼改變

回答

0

的變化不會觸發事件。 作爲一種變通方法,你可以手動調用

$(this).trigger('change'); 
+0

我沒有自己做這些腳本觸發它在你的每一個功能,我搜索了他們,他們複製的,所以我知道極少有關腳本。所以請原諒我問這個問題,但我究竟會把這條線放在哪裏?謝謝! –

+0

此行後if(state)this.checked = state.checked; – Janar

+0

它不適合我,也許我沒有在我的問題中解釋得很好。我相信問題出在隱藏和顯示下拉菜單的第二個腳本中?每當我點擊一個單選按鈕正確的下拉列表中隱藏和顯示,但是當我刷新頁面(或郵寄),所有下拉菜單變得可見,直到我點擊不同的無線電! –