HTML <select> 요소의 기본값을 어떻게 설정합니까?


1457

아래 요소 "value"에 속성 세트 를 추가하면 제공된 포함 내용이 기본적으로 선택됩니다.<select><option>"value"

<select name="hall" id="hall" value="3">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>

그러나 이것은 예상대로 작동하지 않았습니다. <option>기본적으로 어떤 요소가 선택되도록 설정합니까?


와우,이 질문은 매우 도움이되고 문자 그대로 바이러스 성으로 갔다
finnmglas

답변:


2150

selected="selected"기본 옵션으로 설정하십시오 .

<option selected="selected">
3
</option>

19
<option value = "3"selected = "selected"> 3 </ option> 옵션 3을 선택하면 값이 문자열로 전달됩니다.
Sree Rama

5
<Select>에 id 속성을 계속 사용하면 <select> html 요소에 value 속성을 사용하는 것은 좋지 않습니다.
Sree Rama

215
= "선택한"부분은 필요하지 않습니다. 다른 답변에서 언급했듯이 <선택된 옵션> 만 수행됩니다.
MindJuice

56
@MindJuice 내가 작성한 것은 유효한 polyglot HTML / XML입니다. 브라우저에서 <선택된 옵션>을 사용해도 괜찮지 만 다른 파서가 문서를 거부 할 수 있습니다. 때때로 웹 문서에서 XPath / XSLT를 사용하는 것이 편리하다는 것을 알았습니다.
Borealid

70
Angular를 사용하는 ng-model경우 바인딩 된 객체를 설정하지 않은 경우 정의되지 않은 경우에도 기본 선택된 값 이 무시됩니다. selected="selected"옵션이 선택되지 않은 이유를 파악하기 위해 시간이 걸렸습니다 .
metakermit

624

기본 텍스트를 일종의 자리 표시 자 / 힌트로 설정하고 있지만 유효한 값으로 간주되지 않는 경우 ( "여기에서 완료", "국가 선택"등) 다음과 같이 할 수 있습니다.

<select>
  <option value="" selected disabled hidden>Choose here</option>
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>


60
나는 이것이 대부분의 사람들이 찾고있는 것이라고 생각합니다. 좋은 대답입니다.
chrisallick

1
CSS가 화면의 경계를 따라 나타나지 않도록 해야하는 외부 jsfiddle이었습니다. 몇 달 후 인라인 코드 스 니펫으로 편집되었으며 편집 한 사람은 예제에서 그대로 유지했습니다. 실제로 귀찮은 부분을 편집하고 제거 할 수 있습니다.
Nobita

더 좋은 해결책은 hidden대신 속성 을 사용하는 것입니다. 참조 @ 아래 종 립 - 팡가의 대답 : stackoverflow.com/a/39358987/1192426
이반 Akulov

<option value="" selected disabled hidden>Choose here</option>

1
멋진 답변!
japes Sophey

234

완전한 예 :

<select name="hall" id="hall"> 
  <option> 
    1 
  </option> 
  <option> 
    2 
  </option> 
  <option selected> 
    3 
  </option> 
  <option> 
    4 
  </option> 
  <option> 
    5 
  </option> 
</select> 


11
selected = "selected"를 사용하는 것보다 간단합니다.
Rodrigo

57
selected = "selected"는 모든 문서 유형에서 작동합니다. XHTML은 값이없는 속성을 좋아하지 않습니다.
ps2goat

14
@Rodrigo 작성하기가 정말 어렵 selected="selected"습니까? 당신은 무엇을 절약하고 있습니까? 시각? 크기? 무시할 만하고 코드를보다 "준수"하게 만드는 이유는 무엇입니까?
xDaizu

15
@ DanielParejoMuñoz, 알았어, 무시할 만하다. 그러나 내 doctype이 xhtml이 아닌 html 인 경우 바이트를 낭비하는 이유는 무엇입니까?
Rodrigo

5
selected = "selected"는 오류처럼 보입니다. 몇 달 안에 아마도 항목 3이 선택되었다는 것을 의미한다고 생각하고 아마 selected = "3"으로 바꿀 것입니다. (그리고 내 페이지를 깰)
Paul McCarthy

92

나는이 질문을 보았지만 인정되고 찬성 된 대답은 나에게 효과적이지 않았다. React를 사용하면 설정 selected이 작동하지 않는 것으로 나타났습니다 .

대신 <select>아래와 같이 태그에 직접 값을 설정해야 합니다.

<select value="B">
  <option value="A">Apple</option>
  <option value="B">Banana</option>
  <option value="C">Cranberry</option>
</select>

여기 React 페이지에서 이유 대해 자세히 알아보십시오 .


2
태그 의 value속성 ( <select>예 :) 을 사용하여 드롭 다운 목록에서 사전 선택된 옵션을 설정할 수 <select value="3">있지만 W3C 유효성 검사기에서는 유효하지 않습니다.
사도

4
맞습니다. 그러나 이것은 HTML이 아니며 JSX이므로 W3C 규칙을 따를 필요가 없습니다. 결국 React에 의해 생성 된 HTML은 유효합니다.
MindJuice

완벽한 세상에서 이것은 정답이 아니기 때문에 질문에 대한 의견이었습니다. 그러나 나는 그것이 가치가 있다고 생각합니다.
Justus Romijn

2
위의 제안과 비슷한 솔루션이 필요했지만 React 대신 JQuery를 사용했습니다. 미래에 누군가를 도울 수 있다면 :$("select").each(function(){ $(this).find('option[value="'+$(this).attr("value")+'"]').prop('selected', true); });
CDK

이 답변은 유효하지 않습니다. 기본 질문은 HTML Not React (JSX)에 대한 것입니다.
Aaron C

72

다음과 같이 할 수 있습니다 :

<select name="hall" id="hall">
    <option> 1 </option>
    <option> 2 </option>
    <option selected> 3 </option>
    <option> 4 </option>
    <option> 5 </option>
</select> 

옵션 태그 내에 "선택된"키워드를 제공하십시오. 드롭 다운 목록에 기본적으로 표시됩니다.

또는 옵션 태그에 속성을 제공 할 수도 있습니다. 즉

<option selected="selected">3</option>

13
분명히, w3 표준은 <option selected = "selected"> 3 </ option>
htmldrum

40
@JRM 나는 당신의 문서가 속성보다 XHTML 호환 문서라면 aa 값을 가져야한다는 것을 의미한다고 생각합니다. HTML에서는 "selected = selected"가 필요하지 않습니다. w3.org/wiki/HTML/Elements/select , developer.mozilla.org/en-US/docs/HTML/Element/select 의 예제 는 값을 지정하지 않습니다. 주목해야 할 것은 selected="false"허용되지 않으며 selected=""선택됩니다. 옵션을 선택하지 않는 유일한 방법은 속성을 제거하는 것입니다. w3.org/html/wg/drafts/html/master/…
Juan Mendes

3
나는 이런 질문이 어떻게 불쾌한 지 이해하지 못한다. 그들은 정답과 똑같습니다 .. 2 년 후 lol
Phil

51

폼의 값을 사용하고 동적으로 유지하려면 PHP로 시도하십시오.

<form action="../<SamePage>/" method="post">


<?php
    $selected = $_POST['select'];
?>

<select name="select" size="1">

  <option <?php if($selected == '1'){echo("selected");}?>>1</option>
  <option <?php if($selected == '2'){echo("selected");}?>>2</option>

</select>
</form>

40

나는 이것을 선호한다 :

<select>
   <option selected hidden>Choose here</option>
   <option value="1">One</option>
   <option value="2">Two</option>
   <option value="3">Three</option>
   <option value="4">Four</option>
   <option value="5">Five</option>
</select>

옵션을 선택하면 '여기에서 선택'이 사라집니다.


1
시도했지만 "여기를 선택하십시오"가 표시되지 않습니다. 첫 번째 옵션은 비어 있습니다
Bogdan Mates

어떤 브라우저를 사용하고 있습니까?
Chong Lip Phang

Chrome 브라우저 버전 52.0.2743.116 m을 사용하고 있습니다.
Bogdan Mates

2
해당 브라우저도 사용하고 있으며 아무런 문제가 없습니다.
Chong Lip Phang

2
value=""빈 값을 얻으려면 추가 를 고려하십시오 .
Ryan Walton

31

노비타 의 답변 개선 . 또한 '여기에서 선택'요소를 숨겨 드롭 다운 목록의 시각적보기를 향상시킬 수 있습니다.

<select>
  <option selected disabled hidden>Choose here</option>
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>


25

내 의견으로는 가장 좋은 방법 :

<select>
   <option value="" selected="selected" hidden="hidden">Choose here</option>
   <option value="1">One</option>
   <option value="2">Two</option>
   <option value="3">Three</option>
   <option value="4">Four</option>
   <option value="5">Five</option>
</select>

왜 비활성화하지 않습니까?

disabled 속성을 <button type="reset">Reset</button>value 와 함께 사용하면 원래 자리 표시 자로 재설정되지 않습니다. 대신 브라우저는 사용자 실수를 유발할 수있는 먼저 비활성화되지 않은 옵션을 선택합니다.

기본 빈 값

모든 생산 양식에는 유효성 검사가 있으므로 빈 값은 문제가되지 않습니다. 이 방법으로 비어있는 필요하지 않을 수도 있습니다.

XHTML 구문 속성

selected="selected"구문은 XHTML 및 HTML 5와 호환되는 유일한 방법입니다. 올바른 XML 구문이며 일부 편집자는이 점에 만족할 수 있습니다. 더 이전 버전과 호환됩니다. 나는 이것에 대해 강한 느낌을 가지고 있지 않지만, 위의 주장이 당신의 요구 사항이라면 완전한 구문을 따라야합니다.


그것은 나를 위해 모든 옵션을 숨 깁니다
ADEL NAMANI

@ADELNAMANI 코드에 대한 링크를 제공 할 수 있습니까? 문제가 내 답변과 관련이없는 것 같습니다.
Michał Mielec

19

또 다른 예; JavaScript를 사용하여 선택한 옵션을 설정합니다.

(이 예제를 사용하여 값 배열을 드롭 다운 구성 요소에 반복 할 수 있습니다)

<select id="yourDropDownElementId"><select/>

// Get the select element
var select = document.getElementById("yourDropDownElementId");
// Create a new option element
var el = document.createElement("option");
// Add our value to the option
el.textContent = "Example Value";
el.value = "Example Value";
// Set the option to selected
el.selected = true;
// Add the new option element to the select element
select.appendChild(el);

그것이 el.selected = "selected";w3 표준을 준수 해서는 안 됩니까?
7yl4r

5
@ 7yl4r No. selected는 w3c에 의해 정의 된 부울 속성입니다 -w3.org/TR/html401/interact/forms.html`17.6.1 미리 선택된 옵션이 선택됨 [CI]-설정되면,이 부울 속성은이 옵션이 `
Ally

14

선택 속성은 부울 속성입니다.

존재하는 경우 페이지가로드 될 때 옵션을 미리 선택하도록 지정합니다.

미리 선택된 옵션이 드롭 다운 목록에서 먼저 표시됩니다.

<select>
  <option value="volvo">Volvo</option>
 <option value="saab">Saab</option>
 <option value="vw">VW</option>
 <option value="audi" selected>Audi</option> 
</select> 

10

반응 하는 경우 select 태그 defaultValue대신 속성으로 사용할 수 있습니다 value.


7

각도 1과 함께 select를 사용하는 경우 ng-init를 사용해야합니다. 그렇지 않으면 ng-model이 선택한 기본값을 무시하므로 두 번째 옵션을 선택하지 않습니다.

<select ng-model="sortVar" ng-init='sortVar="stargazers_count"'>
  <option value="name">Name</option>
  <option selected="selected" value="stargazers_count">Stars</option>
  <option value="language">Language</option>
</select>

4

이 PHP 함수를 사용하여 옵션을 생성하고 HTML에 삽입했습니다.

<?php
  # code to output a set of options for a numeric drop down list
  # parameters: (start, end, step, format, default)
  function numericoptions($start, $end, $step, $formatstring, $default)
  {
    $retstring = "";
    for($i = $start; $i <= $end; $i = $i + $step)
    {
      $retstring = $retstring . '<OPTION ';
      $retstring = $retstring . 'value="' . sprintf($formatstring,$i) . '"';
      if($default == $i)
      {
        $retstring = $retstring . ' selected="selected"';
      }
      $retstring = $retstring . '>' . sprintf($formatstring,$i) . '</OPTION> ';
    }

  return $retstring;
  }

?>

그런 다음 웹 페이지 코드에서 다음과 같이 사용합니다.

<select id="endmin" name="endmin">
  <?php echo numericoptions(0,55,5,'%02d',$endmin); ?>
</select>

페이지가로드 될 때마다 (그리고이 코드가 게시하는 양식 안에 있음) _POST 변수에서 $ endmin이 작성되면 이전에 선택한 값이 기본적으로 선택됩니다.


4

태그의 value 속성이 누락되었으므로 원하는 u 선택으로 표시되지 않습니다. 태그에 value 속성이 설정된 경우 기본적으로 첫 번째 옵션이 드롭 다운 페이지로드에 표시됩니다.이 방법으로 문제를 해결했습니다.


4

이 코드는 PHP를 사용하여 HTML select 요소의 기본값을 설정합니다.

<select name="hall" id="hall">
<?php
    $default = 3;
    $nr = 1;
    while($nr < 10){
        if($nr == $default){
            echo "<option selected=\"selected\">". $nr ."</option>";
        }
        else{
            echo "<option>". $nr ."</option>";
        }
        $nr++;
    }
?>
</select>

3

당신이 사용할 수있는:

<option value="someValue" selected>Some Value</option>

대신에,

<option value="someValue" selected = "selected">Some Value</option>

둘 다 똑같이 맞습니다.


3

첫 번째 선택 옵션 값을 기본값으로 설정하고 HTML5의 새로운 "숨겨진"기능을 사용하여 드롭 다운에서 해당 값을 숨 깁니다. 이처럼 :

   <select name="" id="">
     <option hidden value="default">Select An Option</option>
     <option value="1">One</option>
     <option value="2">Two</option>
     <option value="3">Three</option>
     <option value="4">Four</option>
   </select>

2

내가 직접 사용

<select selected=''>
    <option value=''></option>
    <option value='1'>ccc</option>
    <option value='2'>xxx</option>
    <option value='3'>zzz</option>
    <option value='4'>aaa</option>
    <option value='5'>qqq</option>
    <option value='6'>wwww</option>
</select>

2

특정 옵션에 "selected"속성을 넣어야하며, 대신 element를 선택하십시오.

다음은 다른 값을 가진 동일하고 여러 작업 예제에 대한 스 니펫입니다.

   Select Option 3 :- 
   <select name="hall" id="hall">
    <option>1</option>
    <option>2</option>
    <option selected="selected">3</option>
    <option>4</option>
    <option>5</option>
   </select>
   
   <br/>
   <br/>
   <br/>
   Select Option 5 :- 
   <select name="hall" id="hall">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option selected="selected">5</option>
   </select>
   
    <br/>
   <br/>
   <br/>
   Select Option 2 :- 
   <select name="hall" id="hall">
    <option>1</option>
    <option selected="selected">2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
   </select>


2

옵션 값이 3 인 selected = "selected"로 설정

아래 예를 참조하십시오

<option selected="selected" value="3" >3</option>

Firefox에서는 페이지 재로드시 작동하지 않습니다
Sebastian

내 시스템에서 Firefox에 대한 작업
Akbor

1

문제 <select>는 때로는 현재 렌더링 된 상태로 연결이 끊어지고 옵션 목록에서 변경 사항이 없으면 변경 값이 반환되지 않는다는 것입니다. 목록에서 첫 번째 옵션을 선택하려고 할 때 문제가 될 수 있습니다. 다음 코드는 첫 번째 옵션을 처음으로 선택할 수 있지만 onchange="changeFontSize(this)"자체적으로는 그렇지 않습니다. 더미 옵션을 사용하여 사용자가 값을 변경하여 실제 첫 번째 값을 가져 오도록 강제하는 위에서 설명한 방법이 있습니다 (예 : 빈 값으로 목록 시작). 참고 : onclick은 함수를 두 번 호출하지만 다음 코드는 그렇지 않지만 처음 문제를 해결합니다.

<label>Font Size</label>
<select name="fontSize" id="fontSize" onfocus="changeFontSize(this)" onchange="changeFontSize(this)">           
    <option value="small">Small</option>
    <option value="medium">Medium</option>
    <option value="large">Large</option>
    <option value="extraLarge">Extra large</option>
</select>

<script>
function changeFontSize(x){
    body=document.getElementById('body');
    if (x.value=="extraLarge") {
        body.style.fontSize="25px";
    } else {
        body.style.fontSize=x.value;
    }
}
</script>

1

나는 Angular를 사용하고 기본 옵션을 다음과 같이 설정합니다.

HTML 템플릿

<select #selectConnection [(ngModel)]="selectedVal" class="form-control  col-sm-6 "  max-width="100px"   title="Select" 
      data-size="10"> 
        <option  >test1</option>
        <option >test2</option>      
      </select>

스크립트:

sselectedVal:any="test1";

0

이것이 내가 한 방법입니다 ...

<form action="../<SamePage>/" method="post">

<?php
    if ( $_POST['drop_down'] == "")
    {
    $selected = "";
    }
    else
    {
    $selected = "selected";
    }
?>

<select name="select" size="1">

  <option value="1" <?php $selected ?>>One</option>
     ////////  OR  ////////
  <option value="2" $selected>Two</option>

</select>
</form>

4
이 솔루션에 약간의 불일치가있는 것 같습니다. 요소의 이름이 "select"인 경우 $ _POST 변수 키가 "select"가 아니어야합니다. "drop_down"은 어디에서 왔습니까? 또한 오류라고 가정하면 실제로 $ _POST [ 'select'] 변수에 값이 있는지 확인하면 비어 있지 않은 값은 true를 반환하므로 모든 <option> 항목이 "selected"로 표시됩니다. 어쩌면이 답변에 없어서는 안될 부분이 있습니까?
Ryan

0

당신은 이렇게 시도 할 수 있습니다

  <select name="hall" id="hall">
      <option>1</option>
      <option>2</option>
      <option selected="selected">3</option>
      <option>4</option>
      <option>5</option>
    </select>

0

HTML 스 니펫 :

<select data-selected="public" class="form-control" name="role">
    <option value="public">
        Pubblica
    </option>
    <option value="user">
        Utenti
    </option>
    <option value="admin">
        Admin
    </option>
</select>

기본 JavaScript 스 니펫 :

document.querySelectorAll('[data-selected]').forEach(e => {
   e.value = e.dataset.selected
});

0
Upstream System:
<select name=upstream id=upstream>
<option value="SYBASE">SYBASE ASE
<option value="SYBASE_IQ">SYBASE_IQ
<option value="SQLSERVER">SQLSERVER
</select>
<script>
var obj=document.getElementById("upstream");
for (var i=0;i<obj.length;i++){if(obj.options[i].value==="SYBASE_IQ")obj.selectedIndex=i;}
</script>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.