JavaScript를 사용하여 HTML 선택 옵션을 어떻게 변경합니까?


168

다음과 같은 옵션 메뉴가 있습니다.

<form name="AddAndEdit">
   <select name="list" id="personlist">
      <option value="11">Person1</option>
      <option value="27">Person2</option>
      <option value="17">Person3</option>
      <option value="10">Person4</option>
      <option value="7">Person5</option>
      <option value="32">Person6</option>
      <option value="18">Person7</option>
      <option value="29">Person8</option>
      <option value="28">Person9</option>
      <option value="34">Person10</option>
      <option value="12">Person11</option>
      <option value="19">Person12</option>
   </select>
</form>

이제 href를 사용하여 선택한 옵션을 변경하고 싶습니다. 예를 들면 다음과 같습니다.

<a href="javascript:void(0);"
  onclick="document.getElementById('personlist').getElementsByTagName('option')[11].selected = 'selected';">change</a>

하지만 함께 옵션을 선택합니다 value=11 (Person1)하지 Person12.

이 코드를 어떻게 변경합니까?

답변:


209

변화

document.getElementById('personlist').getElementsByTagName('option')[11].selected = 'selected'

document.getElementById('personlist').value=Person_ID;

여러 값으로 어떻게 작동합니까? 예를 들어 document.getElementById('personlist').value=id1,id2, 작동하지 않습니다. 어떻게 관리합니까?
utdev

1
@utdev는 여러 선택 stackoverflow.com/a/1296068/1251563 팁을 위한 솔루션입니다 . 루프를 사용해야합니다
breq

내가 좋아하는 뭔가를 할 수 없어 그래서 .value = id1, id2또는 .value = [array]?
utdev

@utdev 불행히도 아니 ... 루프를 사용해야합니다
breq

또한 클래스를 설정하지 않고도 선택 옵션을 통해 가치를 얻을 수 있습니다 var id = document.getElementById('personlist').value. 어쨌든 다른 답변에 사용했습니다!
Alper

44

Selectbox 처리를위한 순수 JavaScript 코드 도구 :

그래픽 이해 :

이미지-A

여기에 이미지 설명을 입력하십시오


이미지-B

여기에 이미지 설명을 입력하십시오


이미지-C

여기에 이미지 설명을 입력하십시오

업데이트 됨-2019 년 6 월 25 일 | 피들러 데모

자바 스크립트 코드 :

/**
 * Empty Select Box
 * @param eid Element ID
 * @param value text
 * @param text text
 * @author Neeraj.Singh
 */
function emptySelectBoxById(eid, value, text) {
    document.getElementById(eid).innerHTML = "<option value='" + value + "'>" + text + "</option>";
}


/**
 * Reset Select Box
 * @param eid Element ID
 */

function resetSelectBoxById(eid) {
    document.getElementById(eid).options[0].selected = 'selected';
}


/**
 * Set Select Box Selection By Index
 * @param eid Element ID
 * @param eindx Element Index
 */

function setSelectBoxByIndex(eid, eindx) {
    document.getElementById(eid).getElementsByTagName('option')[eindx].selected = 'selected';
    //or
    document.getElementById(eid).options[eindx].selected = 'selected';
}


/**
 * Set Select Box Selection By Value
 * @param eid Element ID
 * @param eval Element Index
 */
function setSelectBoxByValue(eid, eval) {
    document.getElementById(eid).value = eval;
}


/**
 * Set Select Box Selection By Text
 * @param eid Element ID
 * @param eval Element Index
 */
function setSelectBoxByText(eid, etxt) {
    var eid = document.getElementById(eid);
    for (var i = 0; i < eid.options.length; ++i) {
        if (eid.options[i].text === etxt)
            eid.options[i].selected = true;
    }
}


/**
 * Get Select Box Text By ID
 * @param eid Element ID
 * @return string
 */

function getSelectBoxText(eid) {
    return document.getElementById(eid).options[document.getElementById(eid).selectedIndex].text;
}


/**
 * Get Select Box Value By ID
 * @param eid Element ID
 * @return string
 */

function getSelectBoxValue(id) {
    return document.getElementById(id).options[document.getElementById(id).selectedIndex].value;
}

1
순수한 자바 스크립트로 select와 상호 작용하는 방법에 대한 훌륭한 예!
Mr.GT

"피들러 데모"에 링크하면 404 / 페이지를 찾을 수 없습니다 :-(
Genki

문제는 "JavaScript를 사용하여 선택한 HTML 옵션을 어떻게 변경합니까?"입니다. 아무것도 응답하지 않고 코드를 복사 / 붙여 넣기 만하면됩니다.
Thomas

28

블로그 게시물 JavaScript Beginners – 값으로 드롭 다운 옵션을 선택하면 도움이 될 것입니다.

<a href="javascript:void(0);" onclick="selectItemByValue(document.getElementById('personlist'),11)">change</a>

function selectItemByValue(elmnt, value){

  for(var i=0; i < elmnt.options.length; i++)
  {
    if(elmnt.options[i].value === value) {
      elmnt.selectedIndex = i;
      break;
    }
  }
}

7
당신은 아마해야 break당신이 선택한 가치를 발견하면 루프가 부족합니다. 목록이 길고 목표 값이 첫 번째 값인 경우 시간을 절약합니다.
daiscog

21

다음과 같이 select.options.selectedIndex DOM 속성을 변경할 수도 있습니다.

function selectOption(index){ 
  document.getElementById("select_id").options.selectedIndex = index;
}
<p>
<select id="select_id">
  <option selected>first option</option>
  <option>second option</option>
  <option>third option</option>
</select>
</p>
<p>
  <button onclick="selectOption(0);">Select first option</button>
  <button onclick="selectOption(1);">Select second option</button>
  <button onclick="selectOption(2);">Select third option</button>
</p>


21
mySelect.value = myValue;

mySelect선택 상자는 어디에 있고 myValue변경할 값입니다.


왜 모든 사람이 이것을 투표하지 않았습니까? 이것이 새로운 기능입니까? 어쨌든 최신 브라우저 만 지원하면됩니다.
antont

2

JQuery도 사용할 수 있습니다

$(document).ready(function () {
  $('#personlist').val("10");
}

1
또는 쿼리없이 불필요한 오버 헤드를 모두 절약 할 수 document.querySelector('#personlist').value=10;있습니다.
Manngo

2

자바 스크립트로 옵션을 추가하는 경우

function AddNewOption(userRoutes, text, id) 
{
    var option = document.createElement("option");
    option.text = text;
    option.value = id;
    option.selected = "selected";
    userdRoutes.add(option);
}

질문은 "JavaScript를 사용하여 HTML 선택 옵션을 어떻게 변경합니까?"였습니다.
Manngo

1

배열 인덱스는 0부터 시작합니다. value = 11 (Person1)을 원하면 position을 얻습니다 getElementsByTagName('option')[10].selected.


0

오래된 게시물이지만 누군가가 이런 종류의 문제에 대한 해결책을 찾고 있다면 여기에 내가 생각해 낸 것이 있습니다.

<script>
  document.addEventListener("DOMContentLoaded", function(e) {
    document.forms['AddAndEdit'].elements['list'].value = 11;
  });
</script>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.