2012-12-25 12 views
0

jQuery에는 선택 상자의 텍스트 필드에있는 내용을 추가하는 함수가 있습니다. 내가 버튼을 클릭하면 함수가 호출된다jQuery를 사용하여 다중 선택의 마지막 요소로 스크롤

 addToList = function(textField, selectList) 
    { 
      var val = $('#'+textField).val(); 
      var select = $('#'+selectList); 

      //If element does not exist already... 
      if (select.find('option[value="' + val + '"]').length === 0 && val!="") 
      { 
       //Add new element to the list 
       $('<option>', { 
       value: val, 
       text: val 
       }).appendTo(select); 

       //Clear text field 
       $('#'+textField).val(""); 

       //Scroll down multi select and select automatically the added option 
       //TODO: Scrolls only to selected element 
       var lastOption = select.find("option[value="+val+"]"); 
       lastOption.attr("selected", true);    
      } 
      else 
      { 
       if (val!="") 
       { 
        alert("\""+val+"\" is already in the list."); 
       } 
      } 
    }; 

, 내가 원하는입니다 그 I는 목록에 항목을 추가 할 때마다, 의미 바닥 (에 목록을 아래로 스크롤이리스트의 마지막 요소 마지막 행에 표시됨) 추가 된 요소가 자동으로 선택됩니다.

내가 선택한 요소까지 아래로 스크롤하기 위해 일부 코드가 발견되었지만 선택한 코드에 관계없이 목록의 끝으로 스크롤하는 코드가 없습니다. 첫 번째 요소를 선택하면이 코드가 스크롤되지 않으므로이 코드가 필요합니다.

+0

당신이'scrollTop' 기능을 살펴 보았다? –

+0

예. 많이! 그리고 그것은 도움이되지 못했습니다! – user1881815

+0

'list'라는 용어로'select' 태그를 사용했다면 더 많은 대화 형 HTML로 대체 할 수있는 플러그인이 너무 많아서 작동하기가 어렵습니다. IE에서는'select '를 사용하여 원하는 것을 얻는 것은 거의 불가능합니다. – charlietfl

답변

0

이 시도 :

var addToList = function(textField, selectList) { 
    var $textField = $('#' + textField), 
     $select = $('#' + selectList), 
     val = $textField.val(), 
     valueFilter = '[value="%s"]'; 
    if(val) { 
     if($select.find('option').filter(valueFilter.replace('%s',val)).length === 0) { 
      $('<option/>').appendTo($select).attr('value', val).text(val); 
      $textField.val(''); 
      $select.val(val);//<<<<<<<<<<<< 
     } 
     else { 
      alert('"' + val + '" is already in the list.'); 
     } 
    } 
}; 
+0

고맙습니다.하지만 작동하지 않습니다. 코드는 이미 선택된 항목을 선택 취소하고 (이 작업을 원하지 않습니다.) 목록의 끝으로 스크롤하지 않습니다. : ( – user1881815

+0

"선택 취소"및 "스크롤"이라는 의미를 정확히 설명해야합니다. 데모는 좋을 것입니다. –

관련 문제