2016-11-29 1 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(); 
      } 
     }); 
    }); 

때 페이지를 다시로드 (또는 폼 게시물에), 모든 dropsdowns도 실제로 라디오가 여전히 확인됩니다 tho도 표시되고, 나는 왜 몰라? 페이지를 새로 고침 할 때 스크립트가 다시 실행되지 않습니까?

답변

0

자바 스크립트 코드를 통해 필드를 변경하면 변경 이벤트가 실행되지 않습니다. 해결 방법으로 수동 내가 그들을 검색하고 복사, 나 자신에 의해 이러한 스크립트를하지 않았다

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

호출하여 각 기능에서 그것을 실행할 수있는, 그래서 스크립트에 대한 아주 조금 알고있다. 그래서이 질문에 대해 실례지만,이 행을 어디에 넣을 것입니까? 감사! 이 줄 다음에 –

+0

if (state) this.checked = state.checked; – Janar

+0

그것은 내 질문에 너무 잘 설명하지 못했을 수 있습니다. 문제는 숨겨진 드롭 다운 메뉴를 보여주는 두 번째 스크립트에 있다고 생각합니까? 라디오 버튼을 클릭 할 때마다 올바른 드롭 다운이 숨기고 표시되지만 페이지 (또는 게시물)를 새로 고침하면 다른 라디오를 클릭하기 전까지 모든 드롭 다운이 표시됩니다! –

관련 문제