2012-10-29 3 views
4

사용중인 선택 상자에는 4 개의 최상위 옵션이 있으며 각 옵션 아래에 옵션 목록이 있습니다. 선택한 항목이 목록의 맨 아래에 나타나면 사용자가 하위 옵션을 보려면 위로 스크롤해야 함을 의미합니다.선택 상자에서 선택한 옵션을 항상 맨 위에 표시하십시오.

제 질문은 '선택'옵션을 맨 위에 올리려면 어떻게합니까? 즉 전체 선택 상자가 스크롤되어 맨 위에 표시되도록하려면?

+1

http://stackoverflow.com/questions/1280499/jquery-set-select-index이 http://stackoverflow.com/questions/7445492/how -to-reset-select-box-using-jquery – riti

+0

이 브라우저는 종속적이라고 생각합니다. 즉, 브라우저가 선택 상자 드롭 다운을 표시 할 스크롤 수준을 결정합니다. – redShadow

+0

여러 항목이 true로 설정된 선택 요소입니까? – epascarello

답변

1

이 시도 :

$('select option:selected').before($('select option:first')); 

을이 당신이 무슨 뜻인지 경우?

+0

포스터는 실제 선택한 옵션을 이동하지 않으려 고합니다. 스크롤이 달라지기를 원합니다. 이것은 OP 명령을 망칠 것입니다. – epascarello

+0

"제 질문은 '선택'옵션이 맨 위에 오도록하려면 어떻게해야합니까? 즉 전체 선택 상자가 스크롤되어 맨 위에 표시되도록하려면 어떻게해야합니까?" 그 모호한 질문입니다. –

1

당신이 할 수있는 일은 선택한 색인을 찾아 마지막에있는 옵션을 선택하고 선택한 항목을 다시 선택하면 항목이 목록 상단에 나타납니다. 해키지만 작동합니다. 이 옵션은 단일 선택에서만 작동하며 여러 옵션 인 경우 모든 옵션을 다시 선택해야합니다.

var sel = ​document.getElementById("yourSelect"); 
var optsLen = sel.options.length; 
var selIndex = sel.selectedIndex; 
var size = sel.size; 
if (selIndex>=size) { 
    var newIndex = selIndex+size+1; 
    if (newIndex>optsLen) { 
     newIndex = optsLen; 
    } 
    sel.selectedIndex = newIndex; 
    setTimeout(function(){sel.selectedIndex = selIndex},1); //slight delay so line above runs 
} 

JSFiddle

관련 문제