jQuery는 선택된 옵션 값을 얻는다 (텍스트가 아니라 속성 'value')


156

좋아, 나는이 코드를 가지고있다 :

<select name="selector" id="selector">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>

그리고 옵션의 가치를 선택하고 싶습니다. 예 : '옵션 2'가 선택되었으며 값은 '2'입니다. '2'는 '옵션 2'가 아니라 얻는 데 필요한 값입니다.


얻기위한 데모 자습서 : freakyjolly.com/... 데모 튜토리얼 설정에 대한 freakyjolly.com/... 단일 및 다중 선택 박스
코드 스파이

답변:


271

04/2020 : 기존 답변 수정

사용 선택 : 선택한 옵션에 사이비 선택을 한 후 사용 .val 옵션의 값을 얻을 기능.

$('select[name=selector] option').filter(':selected').val()

참고 : :selected첫 번째 쿼리에서 직접 선택기 를 사용하는 것보다 필터를 사용하는 것이 좋습니다 .

변경 처리기 안에있는 경우 this.value선택한 옵션 값을 얻기 위해 간단히 사용할 수 있습니다 . 더 많은 옵션은 데모를 참조하십시오.

//ways to retrieve selected option and text outside handler
console.log('Selected option value ' + $('select option').filter(':selected').val()); 
console.log('Selected option value ' + $('select option').filter(':selected').text());

$('select').on('change', function () {
  //ways to retrieve selected option and text outside handler
  console.log('Changed option value ' + this.value);
  console.log('Changed option text ' + $(this).find('option').filter(':selected').text());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<select>
  <option value="1" selected>1 - Text</option>
  <option value="2">2 - Text</option>
  <option value="3">3 - Text</option>
  <option value="4">4 - Text</option>
</select>

이전 답변 :

편집 : 지적한대로 선택한 옵션 값을 반환하지 않습니다.

~~ .val 을 사용 하여 선택한 옵션의 값을 가져옵니다. 아래를 참조하십시오

$('select[name=selector]').val()~~

5
테스트를 수행하십시오 :$('select[name=selector]').change(function() { alert($(this).val()); });
KingRider

4
선택한 옵션에 value속성이 지정 되어 있지 않으면 레이블 (예 :) <option>label</option>이 반환됩니다. 항상 원하는 것이 아닐 수도 있습니다. 물론 대부분의 응용 프로그램에서 값이 지정됩니다.
Czechnology

115

난 그냥 내 경험을 공유하고 싶었어

나를 위해

$('#selectorId').val()

null을 반환했습니다.

나는 사용해야했다

$('#selectorId option:selected').val()


1
브라우저 별 사례입니까? 최신 버전의 크롬은 그것을 허용하지 않았습니까, 아니면 그것을 지원하지 않은 IE입니까?
Theodor Solbjørg

1
최신 버전의 Chrome에있었습니다. Firefox에서도 가능하지만 확실하지 않습니다.
David Torres

$('#selectorId option:selected').val()나를 위해 일하지 않았는지 확실 하지 않습니다. 대신에$('select option:selected').val()
Francisco Quintero

1
@Francisco 문제는 $('select option:selected').val()HTML 코드에서 첫 번째 선택기의 값을 가져옵니다. 반면에 $('#selectorId option:selected').val()당신은 당신이 지정한 선택기의 값을 가질 수 있습니다. 오타가 있는지 다시 확인하십시오. 내가 방금 말한 것을 보여주는 예는 다음과 같습니다. codepen.io/anon/pen/Nqgqyz
David Torres


9

선택에 ID를 추가해야합니다. 그때:
$('#selectorID').val()


ID를 추가했는데 여기에 추가하는 것을 잊었습니다.
n00b

1
ID를 선택기로 사용하여 읽은 것에서 가장 빠른 방법입니다.
Marcus

5

이 시도:

$(document).ready(function(){
    var data= $('select').find('option:selected').val();
});

또는

var data= $('select').find('option:selected').text();

4

jquery다음과 같이 사용할 수 있습니다

스크립트

  $('#IDOfyourdropdown').change(function(){
    alert($(this).val());
  });

FIDDLE은 여기


2

이와 같은 선택

<select class="btn btn-info pull-right" id="list-name" style="width: auto;">
   <option id="0">CHOOSE AN OPTION</option>
   <option id="127">John Doe</option>
   <option id="129" selected>Jane Doe</option>

...이 방법으로 ID를 얻을 수 있습니다 :

$('#list-name option:selected').attr('id');

또는 가치를 대신 사용하여 쉽게 얻을 수 있습니다.

<select class="btn btn-info pull-right" id="list-name" style="width: auto;">
   <option value="0">CHOOSE AN OPTION</option>
   <option value="127">John Doe</option>
   <option value="129" selected>Jane Doe</option>

이처럼 :

$('#list-name').val();

2

내 옵션 중 하나에 값이 없습니다 <option>-----</option>. 사용하려고 if (!$(this).val()) { .. }했지만 이상한 결과를 얻었습니다. 요소에 value속성 이 없으면 <option>빈 문자열 대신 그 안에 텍스트를 반환합니다. val()옵션에 대해 아무것도 반환 하지 않으려면 을 추가하십시오 value="".


0

예를보십시오 :

    <select class="element select small" id="account_name" name="account_name"> 

        <option value="" selected="selected">Please Select</option>           
        <option value="paypal" >Paypal</option>
        <option value="webmoney" >Webmoney</option>

    </select>

 <script type="text/javascript">

        $(document).ready(function(){ 
             $('#account_name').change(function(){
               alert($(this).val());                                                          
             });
        });
 </script>

0
$('#selectorID').val();

또는

$('select[name=selector]').val();

또는

$('.class_nam').val();

@FarhadBagherlo "계속 입력하세요"는 유용한 편집 설명 이 아닙니다 ! 편집 내역을 읽는 사람이 변경된 모든 문자를 검사하지 않고 수행 한 작업을 이해할 수 있도록 변경 사항을 요약하십시오. 감사!
jpaugh

0

이 코드는 저에게 매우 효과적입니다. 선택한 옵션의 값을 반환합니다. $ ( '# select_id'). find ( 'option : selected'). val ();


0
 $(document ).ready(function() {
    $('select[name=selectorname]').change(function() { 
     alert($(this).val());});
 });

이 코드는 문제를 해결할 수 있지만 정교화를 추가하고이 코드를 이해하지 못하는 사람들에게 어떻게 작동하는지 설명하는 것이 가장 좋습니다.
paper1111

@ paper1111 이것은 간단한 기능입니다. 이것이 필요한지 설명 할 수 있습니다. $ ( 'select [name = here is select box name]] .change ()-함수를 선택하면 선택 상자 옵션 기능이 작동합니다. $ (this) .val ()-선택된 옵션 값을 반환합니다.
Turan Zamanlı

0

소스 링크

사용 jQuery를 발은 () 하는 GET 값과 선택된 텍스트를 () 옵션의 텍스트를 얻을 수 있습니다.

    <select id="myDropDown" class="form-control">
        <option value="0">Select Value 0</option>
        <option value="8">Option value 8</option>
        <option value="5">Option value 5</option>
        <option value="4">Option value 4</option>
    </select>

선택 드롭 다운에서 이벤트 변경

        $("#myDropDown").change(function () {

            // Fetching Value
            console.log($(this).val());

            // Fetching Text
            console.log($(this).find('option:selected').text());

            alert('Value: '+$(this).val()+' | Text: '+$(this).find('option:selected').text());
        });

버튼 클릭

        $("button").click(function () {

        // Fetching Value
            console.log($("#myDropDown").val());

    // Fetching Text
            console.log($('#myDropDown option:selected').text());

            alert('Value: '+$("#myDropDown").val()+' | Text: '+$('#myDropDown option:selected').text());
        });
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.