2010-12-17 5 views
2

첫째, 나는 자바 전문가가 아니다. 새 항목이 추가 될 때 자동으로 끝까지 스크롤하는 SELECT 상자에 기능을 추가하고 싶습니다. 사용자가 스크롤하지 않은 경우에만 기능을 추가하고 싶습니다.SELECT 스크롤링의 자바 스크립트 컨트롤

기본적으로 사용자가 이전 항목을 검토 할 때 신입 회원이 선택 목록 끝에 스냅 위치를 놓기를 원하지 않습니다. 그러나 사용자가 스크롤 막대를 사용하여 맨 아래로 스크롤하면 새로운 도착 화면이 자동으로 표시됩니다. 여기

내가 내가 마지막으로 하나의 항목을 볼 수 있는지 확인하는 테스트를 수행해야 할 것으로 예상하고

<script type="text/javascript"> 
    function AddItem(s) 
    { 
    document.getElementById('content').add(new Option(s)); 
    // Scroll to end - cant remember why I am using this pair of commands :) 
    document.getElementById('content').selectedIndex = document.getElementById('content').length - 1; 
    document.getElementById('content').selectedIndex = document.getElementById('content').length + 1; 
    } 
</script> 

지금까지 가지고있는 것입니다. 그렇다면 우리는 맨 아래에 있으며 자동 스크롤을 수행해야합니다. 이 올바른지? 나는이 작업을 수행 할 수 있습니다 생각하지 않도록

감사 JS 석사

사이먼

답변

1

선택 상자의 스크롤 바는 자바 스크립트를 통해 액세스 할 수 없습니다. 관련

: Height of an HTML select box (dropdown)

당신이 선택하는 항목을 확인하고 선택을 변경하지만 난 볼 수있는 항목을 알 수있는 방법이 있다고 생각하지 않습니다 수 있습니다.

+0

JS가 제공하는 '부분 구현'이 마음에 듭니다! – sipi

0

@bemace가 지적했듯이 JavaScript는 선택 상자를 스크롤 할 수있는 액세스 권한을 제공하지 않습니다. 당신이 할 수있는 최선은 항목을 "미리 선택"하는 것입니다 ... 만약 이것이 "드롭 다운"스타일 선택이라면, 그 옵션을 보여 주어야합니다.

<script type="text/javascript"> 
    function AddItem(s){ 
    var mySelect = document.getElementById('content'); 
    mySelect.add(new Option(s)); 
    mySelect.selectedIndex = mySelect.options.length - 1; 
    } 
</script> 

그것은 당신이 선택 30 옵션이있는 경우, 그러나 주목해야하고, size 속성이 말을 설정 10 (예를 들어,이리스트가 아닌 드롭 다운으로 표시), 다음 "선택" 새로운 (31st 옵션), 그 항목을 표시하기 위해 반드시 목록이 스크롤되지는 않습니다.

+0

고정 크기 상자를 언급 했어야합니다. – sipi

+0

아, 좋아.''(키에 크기 속성이 포함됨) – scunliffe

관련 문제