2010-01-26 4 views
0

사용할 수있는 모든 옵션이있는 선택 상자가 있습니다. 사용자가 응용 프로그램에서 레코드를 클릭하면 해당 레코드의 옵션 값을 포함하는 xml 응답을받습니다. 선택 상자를 다시로드 할 필요없이 선택 상자에서 해당 특정 옵션에 대해 선택한 색인을 설정하려면 자바 스크립트를 사용하고 싶습니다. 옵션의 값이나 이름을 기반으로 옵션 색인을 쉽게 찾을 수 있습니까? 그런 다음 해당 옵션을 선택한 색인으로 설정할 수 있습니다.Javascript를 사용하는 옵션의 값으로 선택 상자에서 옵션을 선택하는 방법은 무엇입니까?

답변

3

내가 두 번째 토비의 답변을 것입니다. 당신이 어떤 이유로 기존 라이브러리를 사용할 수없는 경우 그러나, 그것은 일반 자바 스크립트에서 할 쉽게 충분 : 대신 옵션의 텍스트를 사용하려는 경우, .text.value 교체

function selectByValue(el, value) { 
    for (var i=0, len=options.length; i<len; i++) { 
     if (el.options[i].value == value) { 
      el.selectedIndex = i; 
      break; 
     } 
    } 
} 

. 선택 옵션에는 "이름"속성이 없으므로 "텍스트"를 사용한다고 가정합니다.

+1

감사! 이것은 효과가 있었다. 부가 메모로 ... 나는 실수로이 작업을 수행하여 전체 프로세스를 피할 수 있음을 알게되었습니다. document.getElementById ('my_selector'). value = record_value; 인덱스를 전혀 찾을 필요없이 적절한 레코드를 선택하는 것 같습니다. IE는 아마 그걸 날려 버릴 테지만, 내가 시도한 모든 비 FUBARed 브라우저에서 작동한다. – user77413

+0

나는 그것을 시험해 보지는 않았지만 나는 일할 수있는 이상한 직감을 가졌다. 잘 알고 있지만. – elo80ka

+1

dropdownEl.value = value는 IE에서도 작동합니다. – einarq

0

jQuery 나 Prototype과 같은 JS 라이브러리를 살펴 보는 것이 좋습니다. 그들은 이런 종류의 일을 쉽게 만듭니다.

1

그것은이에 아주 가까이 있습니다 :

function find_index(options, value) { 
    for (var i=0; i<options.length; i++) { 
     if (options[i].value == value) { 
      return i; 
     } 
    } 
    return -1 
} 

function set_selected_option(select_element, value) { 
    var index = find_index(select_element.options, value) 
    if (index != -1){ 
     select_element.selectedIndex = index; 
    } 
} 
관련 문제