2011-05-05 5 views
2

확장 가능한 [트리보기] 다중 선택 드롭 다운 목록은 어떻게 얻을 수 있습니까?확장 가능 다중 선택 드롭 다운 목록

예를 들어 아래의 스냅 샷에서 Animals [Cat, Cow etc.]의 하위 목록에 + 기호가 표시되고 클릭 될 때와 같은 플러그인이 있으면 하위 목록이 다음과 같이 표시됩니다. 같은 드롭 다운 트리보기처럼?

enter image description here

어떤 조언을 ?

+0

존재하는 플러그인에 대해 의문의 여지가 있지만 구현하기가 너무 어려워서는 안됩니다. – qwertymk

+0

동의합니다. JQueryUI가 가지고있다. YUI도 가지고 있습니다. – Mohsen

답변

1

혼자만의 선택 태그, 나 네가 할 수 없다는 걸 알아라. 귀하의 경우, 사용자 정의 된 선택 상자를 작성해야합니다.

  • JQuery UI 같은 자바 스크립트 라이브러리의 treeview 플러그인처럼, html 태그의 조합을 사용하여 수행 할 수 있습니다. 그러나 당신은 @Edgar에 대해 다중 선택이 없다고 코멘트했습니다.
  • 또한 플래시 또는 자바 플러그인을 포함하는 것이 해결책이 될 수 있습니다.

내 예제 솔루션을 사용하면 원하는 정확한 것을 제공하지 못했을 것입니다. 질문에 대답하는 데 도움이 될 수있는 간단한 예를 드리겠습니다. 이것은 사용자 정의 된 선택 상자를 작성하는 것입니다.

사용자 정의 선택 박스

사용자 정의 된 선택 상자 만드는 방법 :

  1. 목록의 컨테이너가 될 것이다 사업부를 작성합니다.

    <div id="treeSelect">

  2. 은 선택 상자처럼 행동 할 DIV에 스타일을 추가합니다.

    #treeSelect{height: 100px;width: 150px;border: 1px solid #000;overflow: auto;}

  3. 은 DIV의 하위 목록과 함께 주요 목록의 내용을 추가합니다. 트리 뷰 목록과 유사하도록 컨텐트를 형식화하는 데 사용할 수있는 가능한 모든 스타일을 포함하십시오.

    <span class="mainList">All</span> 
    <br /> 
    <span class="expand" onClick="expand('animals', this);">[+]</span><span class="mainList">Animals</span> 
    <br /> 
    <ul id="animals" class="subList"> 
        <li><input type="checkbox" name="animals" value="Cat">Cat</li> 
        <li><input type="checkbox" name="animals" value="Cow">Cow</li> 
        <li><input type="checkbox" name="animals" value="Cat">Dog</li> 
    </ul> 
    
  4. 하위 목록을 보는 방법을 처리하는 스크립트를 추가하십시오.

    기능 확장 (목록보기) {

    var listElement = document.getElementById(list); 
    var defaultView = '[+]'; 
    
    if(view.innerHTML == defaultView){ 
        listElement.style.display = "block"; 
        view.innerHTML = '[-]'; 
    } else { 
        listElement.style.display = "none"; 
        view.innerHTML = '[+]'; 
    } 
    

    }

나는 모든 코드 그래서 전체 코드의 jsfiddle를 참조하십시오 넣을 수 없습니다.

나는 이것이 당신이 원했던 정확한 것이 아니라는 것을 알고 있지만, 그것이 당신이 필요로하는 것에 가깝다고 생각합니다. 당신의 취향과 필요에 따라 스타일을 바꿀 수 있습니다. 나는 이것이 도움이 될 수 있고 당신의 질문을 해결하는 방법을 알기를 바랍니다.

+0

이것은 내가보고있는 것과 비슷합니다! 하지만 부모 요소를 선택할 수없는 문제가 하나 있습니다. JS 트리 플러그인은 갈 길입니다.하지만 체크 박스가 마음에 들지 않습니다. 다중 선택 목록을 선호합니다. – jagamot

+1

일부 수정 및 추가 CSS & JS를 사용하면 원했던 모양을 얻을 수 있습니다. 원했던 것처럼 많이 만들지 않았습니다. 할 일이 많기 때문입니다. 부모와 함께 체크 박스를 추가 할 수도 있습니다. 알아요. 체크 박스에 대해 물어볼 것이지만, 다중 선택과 같이 할 시간이 없다. 체크 박스를 숨기고, 체크 할 박스에'onClick' 이벤트를 추가하면된다. 그것을 선택하지 않으면''배경을 바꿉니다. 아직해야 할 일이 많지만, 이것은 좋은 시작입니다. 나머지 부분은 관리 할 수 ​​있기를 바랍니다. – ace

0

당신은 treeview plugin 또는이 도움이 jsTree plugin

희망을 사용할 수 있습니다. 건배

+0

그러나 내가 찾고있는 것은 순전히 다중 SELECT 드롭 다운 목록입니다. 이상적으로, 나는 하위 드롭 다운을 표시하고 해당 하위 목록을 표시 할 수 있지만 선택할 수있는 트리보기와 같은 기능을 제공하지 않도록하고 싶습니다! – jagamot

+0

사용자가이 플러그인에서 노드를 클릭 할 때 일부 히든을 만들거나 삭제할 수 있습니다. 나는 당신이 물어 보는 기능을 가진 다중 선택 인 내장 컨트롤을 모른다. –

0

당신은 그 아이들이 기본적으로 숨겨져 각 메인 카테고리에 대한 <optgroup>을 사용할 수 있으며, <optgroup> 레이블을 클릭하면 단순히 아이 <option> (들)을 숨기기를 취소 할 수 있습니다. 다음과 같은

뭔가 : 당신의 CSS에서

:

#categories optgroup option { display: none; } 

당신의 HTML에서 :

<select name="categories" id="categories"> 
    <optgroup label="+ Animals"> 
     <option value="bird">Bird</option> 
     <option value="dog">Dog</option> 
     <option value="cat">Cat</option> 
    </optgroup> 
</select> 

을 (jQuery를 사용하여) 자바 스크립트에서 :

$('#categories > optgroup').click(function(){ 
    $(this).children().toggle(); 
}); 
+0

어떻게 IE 6에서 작동하지 않는 것 같은지 !! – jagamot

+0

그리고 하위 목록 요소를 선택하려고하면 그냥 전환됩니다! – jagamot

+0

@HonorGod 아 optgroups를 사용해 본지 너무 오래되었습니다. CSS를 통해 실제로 액세스 할 수 없으므로 아마 작동하지 않을 것입니다. 위에서 언급 한 treeview 플러그인이나 jsTree 플러그인과 같은 것을 사용하는 것이 더 좋으며 단순히 다중 선택과 같은 모양으로 트리를 스타일링하는 것보다 간단하지만 클릭 할 때 폼 값을 변경하기 위해 작업을 바인드하는 것이 좋습니다. – musicinmyhead