2014-03-12 4 views
0

특정 솔루션을 검색했지만 찾을 수없는 답변을 찾은 것 같습니다. 각 섹션에 대해 미리 개발 된 모듈을 선택하는 CMS 시스템을 개발 중입니다.드롭 다운 선택에 따라 div를 표시하는 방법

사용자가 첫 번째 드롭 다운 목록 (select id = 'section1')에서 모듈을 선택하면이 모듈에 대한 속성 목록에 이 표시됩니다. 사용자가 두 번째 드롭 다운 목록 (select id = 'section2')에서 모듈을 선택하면 해당 모듈의 속성이 표시됩니다. 선택할 수있는 5 개의 드롭 다운 목록이 있으며 각각 동일한 옵션이 있습니다. 내가 가지고있는 문제는 첫 번째 선택이 이루어질 때 속성이 모두 좋고 잘 표시된다는 것입니다. 그러나 두 번째 드롭 다운 목록이 선택되면 첫 번째 선택의 속성 집합이 두 번째 선택 항목의 해당 div로 대체됩니다.

내가 원하는 것은 두 번째 선택을 선택한 후에도 첫 번째 선택 div를 표시하는 것입니다. 두 모듈의 등록 정보가 모두 표시되어야합니다. 첫 번째 옵션의 모듈이 변경되면 해당 속성을 표시하는 div도 변경되어야합니다. 도와주세요. 나는이 일부 JQuery와 함께 이루어집니다 알고 있지만 내가 무엇을해야 할 코드를 조작하는 방법을 잘 모릅니다

예 :

<select id="section1"><option>Please Select</option> 
<option value="1">Module 1</option> 
<option value="2">Module 2</option> 
<option value="3">Module 3</option></select> 

<select id="section2"><option>Please Select</option> 
<option value="1">Module 1</option> 
<option value="2">Module 2</option> 
<option value="3">Module 3</option></select> 

<div id="module1" class="page" style="display:none;">Module 1 Properties</div> 
<div id="module2" class="page" style="display:none;">Module 2 Properties</div> 
<div id="module3" class="page" style="display:none;">Module 3 Properties</div> 

내가 언급처럼 패턴은, 각 섹션에 대해 반복, 5 개 섹션이 있습니다 ,하지만 당신이 2 개의 섹션으로 저를 도울 수 있다면 아이디어를 얻을 것입니다. 내가 사용

JQuery와는 다음과 같습니다 선택 드롭 다운에 연결되어 있지 않은 모든 div의 숨겨집니다

$(function() { 
$('#section1').change(function() { 
    var val = $(this).val(); 
    if (val) { 
     $('div:not(#module' + val + ')').slideUp(); 
     $('#module' + val).slideDown(); 
    } else { 
     $('div').slideDown(); 
    } 
}); 
}); 

$(function() { 
$('#section2').change(function() { 
    var val = $(this).val(); 
    if (val) { 
     $('div:not(#module' + val + ')').slideUp(); 
     $('#module' + val).slideDown(); 
    } else { 
     $('div').slideDown(); 
    } 
}); 
}); 
+0

당신이 JsFiddle을 만든 경우 그것은 좋은 것 (http://jsfiddle.net/) 또는 CodePen (http://codepen.io/pen /)를 사용하여 코드의 동작을 표시하십시오. –

+0

응답 해 주셔서 감사합니다. jsFille http://jsfiddle.net/H37eb/에 코드를 추가했습니다. –

+0

새 모듈을 추가해야하지만 섹션 1의 옵션을 변경하면 모듈을 교체하는 대신 섹션 1에 다른 모듈이 추가됩니다. 섹션 2에서 옵션을 변경하면 기존 옵션이 섹션 1 또는 섹션 2에 있는지 여부가 바뀝니다. 기본적으로 섹션에는 선택한 모듈 만 표시되어야합니다. 섹션 1에서 모듈이 변경되면 해당 속성도 변경되어야합니다. 섹션 2에도 동일하게 적용됩니다. 간단한 해결책이있을 것입니다. –

답변

0

코드

$('div:not(#module' + val + ')').slideUp(); 

. "Module 2"드롭 다운에서 선택하면 "Module 1"-div가 숨겨집니다.

시도해 보시고, 제거하십시오. 잠시 테스트 할 수 없습니다.

+0

Jsfiddle 스크립트를 업로드했습니다. 당신이 제안한 코드 줄을 제거하는 것이 내가 원하는 것입니다. –

+0

좋아, 어떤 기능을 달성하고 싶지 않으십니까? –

+0

응답 해 주셔서 감사합니다. module1이 변경되면 해당 속성도 변경되어야합니다. 이 선은 사라지고 모듈 1이 변경되면 새 모듈이 추가됩니다. 모듈 1은 새 모듈로 교체되는 대신 변경됩니다. 1 2 3 4 대신에 id 이름을 모듈 이름으로 사용할 수 있습니까? 또한 2 개의 모듈이 동일 할 수 있다면 이상적입니다. –

0

http://jsfiddle.net/hc6sh/1/

$('select option').click(function(){ 
    var num = $(this).index() 
    var num = '#module'+num 
// alert(num) 
    $('.page').slideUp(); 
    $(num).slideDown(); 
}); 

을 시도해보십시오이 하나

+0

jsfiddle 스크립트를 업데이트하여 작동 여부를 확인하기 위해 ajaz.googlrapis 참조를 추가했지만 스크립트는 해당 행의 유무와 상관없이 작동하지 않습니다. [link] (http : // jsfiddle.net/hc6sh/2 /) –

+0

http://jsfiddle.net/hc6sh/2/ –

+0

무엇을 추가 했습니까? cdn에서 이미 jQuery를 추가했는데, 잘 작동하는 링크가 있습니다. – ShibinRagh

관련 문제