선택 요소에서 선택한 옵션 가져 오기


93

드롭 다운에서 선택한 옵션을 가져오고 다음과 같이 해당 텍스트로 다른 항목을 채우려 고합니다. IE가 폭풍을 일으키고 있으며 Firefox에서 작동하지 않습니다.

$('#ddlCodes').change(function() {
  $('#txtEntry2').text('#ddlCodes option:selected').text();
});

내가 뭘 잘못하고 있죠?

답변:


187

다음은 짧은 버전입니다.

$('#ddlCodes').change(function() {
  $('#txtEntry2').text($(this).find(":selected").text());
});

karim79 는 잘 잡았습니다. 요소 이름으로 판단 txtEntry2하면 텍스트 상자가 될 수 있습니다. 어떤 종류의 입력이든 .val()대신 사용하거나 다음 .text()과 같이 사용해야 합니다.

  $('#txtEntry2').val($(this).find(":selected").text());

"무슨 일이야?" 질문의 일부 : .text()선택기를 사용하지 않거나 설정하려는 텍스트를 사용하거나 이미있는 텍스트를 반환하는 데 아무것도 사용하지 않습니다. 따라서 원하는 텍스트를 가져온 다음 .text(string)위와 같이 설정하려는 개체 의 메서드에 넣어야합니다 .


7
경우 txtEntry2텍스트 입력이며, 영업 이익은 사용할 필요가 val()대신.
— karim79 2010 년

@ karim79-좋은 점, 아마도 요소 이름으로 업데이트 중입니다.
— Nick Craver

예, .text를 .val로 변경하고 텍스트를 다르게 가져 오면 모든 것이 패닝되었습니다. 감사합니다 친구
— Matt

당신은 나를 공식적으로 미쳐 버리지 않도록 구해 줬어요!
— nathanchere 2011

15

이 시도:

$('#ddlCodes').change(function() {
  var option = this.options[this.selectedIndex];
  $('#txtEntry2').text($(option).text());
});

8

다음은 작동해야하는 더 짧은 버전입니다.

 $('#ddlCodes').change(function() {
      $('#txtEntry2').text(this.val());
    });

잡히지 않은 TypeError : 개체 # <HTMLSelectElement>에 'val'메소드가 없습니다
— DoodleKana

1
this.value그것을 고칠 것입니다.
— Kris Selbekk

4

더 적은 jQuery 사용 :

<select name="ddlCodes"
 onchange="$('#txtEntry2').text(this.options[this.selectedIndex].value);">

this.options[this.selectedIndex].value 일반 JavaScript입니다.

(출처 : German SelfHTML )


2

다음 코드를 시도하십시오

$('#ddlCodes').change(function() {
  $('#txtEntry2').val(  $('#ddlCodes :selected').text() );
});

2

선택한 요소의 수를 알고 싶다면

$("select option:selected").length

선택한 모든 요소의 값을 얻으려면

    var str = "";
  $("select option:selected").each(function () {
        str += $(this).text() + " ";
      });


1

첫 번째 부분은 다음과 같은 드롭 다운 메뉴에서 요소를 가져 오는 것입니다.

<select id="cycles_list">
    <option value="10">10</option>
    <option value="100">100</option>
    <option value="1000">1000</option>
    <option value="10000">10000</option>
</select>

jQuery를 통해 캡처하려면 다음과 같이 할 수 있습니다.

$('#cycles_list').change(function() {
    var mylist = document.getElementById("cycles_list");
    iterations = mylist.options[mylist.selectedIndex].text;
});

변수에 값을 저장했으면 다음 단계는 변수에 저장된 정보를 선택한 양식 필드 또는 HTML 요소로 보내는 것입니다. div p 또는 맞춤 요소 일 수 있습니다.

즉 <p></p> OR <div></div>

다음을 사용합니다.

$ ( 'p'). html (반복); 또는 $ ( 'div'). html (반복);

다음과 같은 텍스트 필드를 채우려는 경우 :

<input type="text" name="textform" id="textform"></input>

다음을 사용합니다.

$ ( '# textform'). text = 반복;

물론 위의 모든 작업을 더 적은 단계로 수행 할 수 있습니다. 모든 것을 이해하기 쉬운 단계로 나누면 사람들이 배우는 데 도움이된다고 믿습니다. 도움이되기를 바랍니다.


1

selectedOptions 속성 (HTML5)을 사용하면 선택한 옵션을 얻을 수 있습니다.

document.getElementbyId("id").selectedOptions; 

이렇게하면 JQuery를 사용할 수 있습니다.

$("#id")[0].selectedOptions; 

또는

$("#id").prop("selectedOptions");

속성에는 선택한이 옵션과 유사한 HTMLCollection 배열이 포함되어 있습니다.

[<option value=​"1">​ABC</option>]

또는 여러 선택

[<option value=​"1">​ABC</option>, <option value=​"2">​DEF</option> ...]

0

위의 내용은 매우 잘 작동하지만 드롭 다운 텍스트에 대한 jQuery typecast를 놓친 것 같습니다. 그 외에는 .val()입력 텍스트 유형 요소에 대한 텍스트를 설정하는 데 사용 하는 것이 좋습니다 . 이러한 변경으로 코드는 다음과 같습니다.

    $('#txtEntry2').val($('#ddlCodes option:selected').text());

0

이미 이것을 가지고 있고 jquery를 사용한다면 이것이 당신의 대답이 될 것입니다.

$ ($ (this) [0] .selectedOptions [0]). text ()


0

이 HTML이 주어지면 :

<select>
    <option value="0">One</option>
    <option value="1">Two</option>
</select>

jQuery v1.6 +에 대한 설명으로 선택 :

var text1 = 'Two';
$("select option").filter(function() {
    //may want to use $.trim in here
    return $(this).text() == text1; 
}).prop('selected', true);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.