html select 요소의 선택된 옵션 값을 검색하고 설정하는 jQuery


126

jQuery를 사용하여 선택 요소 (드롭 다운 목록)의 선택된 값을 검색하고 설정하려고합니다.

retrievel을 위해 내가 시도 $("#myId").find(':selected').val()뿐만 아니라, $("#myId").val()하지만 모두 반환 정의되지 않은.

이 문제에 대한 통찰력은 대단히 감사하겠습니다.


asp .net을 사용하는 경우 한 번 렌더링 된 ID가 동일하지 않을 수 있습니다!
Rigobert Song

답변:


154

당신이 그것을 가지고있는 방법은 현재 정확합니다. 선택의 ID가 말한 것이 아니거나 돔에 문제가 있습니다.

요소의 ID를 확인하고 또한 귀하의 마크 업 유효성을 확인 여기 W3C에서.

유효한 DOM이 없으면 jQuery가 선택기와 올바르게 작동 할 수 없습니다.

ID가 정확하고 돔이 유효성을 검사하면 다음이 적용됩니다.

선택 옵션 값을 읽으려면

$('#selectId').val();

선택 옵션 값을 설정하려면

$('#selectId').val('newValue');

선택한 텍스트를 읽으려면

$('#selectId>option:selected').text();

@ Html.DropDownList ( "CoinTypes", (SelectList) ViewBag.RequiredLevel, new {@class = "form-control", @ style = "height : 21px; margin-top : 5px;"})하지만 $ ( '# CoinTypes ') .val (@ ViewBag.CoinType); 선택하지 않음
Nithin Paul

@NithinPaul은 실제로 코멘트가 아닙니다. 누군가 HTML을 실제로 표시하여 누군가가 실제로 무엇이 잘못되었는지 시험해 볼 수있는 질문을하십시오. 누군가 webforms / mvc 코드에서 어떻게 해결할 수 있는지 잘 모르겠습니다!
redsquare

248

select 요소의 실제 selectedIndex 속성을 가져 오거나 설정하려면 다음을 사용하십시오.

$("#select-id").prop("selectedIndex");

$("#select-id").prop("selectedIndex",1);

19
prop () 기능은 버전 1.6에서 구현되었으므로 이전 버전에는이 기능이 없습니다.
RobB

18
이 답변은 실제로 값뿐만 아니라 색인에 액세스하는 질문에 답변하기 때문에이 답변을 좋아합니다.
Pablo Diaz

4
네. 나는 그것이 원래의 질문이라고 생각했다.
잭 홀트

아마도 같은 구문으로 attr을 사용하고 괜찮을 수도 있습니다.
Yitzhak

7
@ M.YitzhakSamuel .attr().prop()동의어가 아니다. 속성이 속성 인 특정 인스턴스에서 작동합니다 (예 : .attr('id')와 동일) .prop('id'). 이 경우 .prop('selectedIndex').get(0).selectedIndex입니다.
WynandB

7

$('#myId').val() 내가 시도하지 않을 것입니다.

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

4

로 설정 JQM하면 UI다음 을 업데이트해야합니다 .

$('#selectId').val('newValue').selectmenu('refresh', true);

이 너겟 덕분에-$ ( "# slot-choice"). prop ( "selectedIndex", n)으로 selectedIndex를 변경 한 후 왜 새 값이 화면에 표시되지 않는지 궁금했습니다.
Samik R

3

$("#myId").val()myidselect 요소 ID 인 경우 작동해야합니다 !

선택한 항목이 설정됩니다. $("#myId").val('VALUE');


1

다음과 같이 SELECT 태그를 사용하여 드롭 다운 목록을 작성했다고 가정하십시오.

<select id="Country">

이제 JQuery를 사용하여 드롭 다운에서 선택된 값이 무엇인지 보려면 다음 줄을 입력하여 해당 값을 검색하십시오.

var result= $("#Country option:selected").text();

잘 작동합니다.


0

나는 이것이 오래되었다는 것을 알고 있지만 Razor와 함께 시간을 보냈지 만 아무리 노력해도 작동하지 못했습니다. 속성에 "text"또는 "html"을 사용하더라도 "정의되지 않은"상태로 유지됩니다. 마지막으로 옵션에 "data-value"속성을 추가하고 잘 읽었습니다.

 <option value="1" data-value="MyText">MyText</option>

 var DisplayText = $(this).find("option:selected").attr("data-value");

0

$ ( "#myId 옵션 : 선택") .text (); 드롭 다운 요소에서 선택한 텍스트를 제공합니다. 어느 쪽이든 .val ()으로 변경할 수 있습니다. 그것의 가치를 얻을 수 있습니다. 아래의 코딩을 확인하십시오

<select id="myId">
    <option value="1">Mr</option>
    <option value="2">Mrs</option>
    <option value="3">Ms</option>`
    <option value="4">Dr</option>
    <option value="5">Prof</option>
</select>

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.