2012-01-23 39 views
65

Tôi có một trình đơn thả xuống có cặp 'ID, Tên'.Lấy giá trị của một menu thả xuống trong jQuery

Ví dụ

Jon Miller
Jim Smith
Jen Morsin

Jon Miller có ID của 101
Jim Smith có ID của 102
Jen Morsin có ID của 103

Khi Tôi làm theo sau:

var arNames = $('#Crd').val() 

và tôi chọn Jon Miller, tôi nhận được 101. Mặc dù tôi muốn nhận được Jon Miller.

+0

Check-out http://stackoverflow.com/questions/1643227/jquery-get-selected-text-from-dropdownlist – Franz

Trả lời

133

$('#Crd').val() sẽ cung cấp cho bạn giá trị được chọn của phần tử thả xuống. Sử dụng tùy chọn này để nhận văn bản tùy chọn đã chọn.

$('#Crd option:selected').text(); 
+1

$ ('# CRD tùy chọn: chọn'). Text() hoặc $ ('# Crd option: selected'). val(), .text cho bạn giá trị của văn bản được hiển thị, không phải giá trị –

4

Nếu bạn đang sử dụng một <select>, .val() nhận được 'giá trị' của chọn <option>. Nếu nó không có value, nó có thể dự phòng id. Đặt giá trị mà bạn muốn nó trở lại trong value thuộc tính của mỗi <option>

Edit: Xem ý kiến ​​để làm rõ về những gì thực sự là value (không nhất thiết phải bằng với thuộc tính value).

+1

Chỉ cần làm rõ, .val() trả về * giá trị trực tiếp * không phải là Giá trị thuộc tính HTML. – Chad

+0

Chính xác. Tuy nhiên không có sự khác biệt thực tế trong trường hợp này vì OP dường như không muốn thay đổi 'giá trị' tại bất kỳ điểm nào. –

+2

'.val() nhận thuộc tính 'giá trị' của số đã chọn

0

Như đã được chỉ ra ... trong một hộp select, thuộc tính .val() sẽ cung cấp cho bạn giá trị của tùy chọn đã chọn. Nếu tùy chọn được chọn không có một giá trị thuộc tính nó sẽ mặc định giá trị hiển thị của các tùy chọn (đó là những gì các ví dụ trên cho thấy jQuery documentation of .val

bạn muốn sử dụng .text() của các tùy chọn chọn:.

$('#Crd option:selected').text()

7

cách tốt nhất là sử dụng:

$("#yourid option:selected").text(); 

Tuỳ theo yêu cầu, bạn cũng có thể sử dụng theo cách này:

var v = $("#yourid").val(); 
$("#yourid option[value="+v+"]").text() 
0

Điều này cung cấp cho bạn giá trị hiện tại của menu thả xuống, nếu thả xuống có ID là "someId".

$("#someId").val(); 
3
var sal = $('.selectSal option:selected').eq(0).val(); 

selectSal là một lớp.

1

Hãy thử điều này:

var text = $('#YourDropdownId').find('option:selected').text(); 
0

Một lựa chọn khác:

$("#<%=dropDownId.ClientID%>").children("option:selected").val(); 
2

này đã làm việc cho tôi!

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

Hy vọng điều này sẽ giúp ai đó!

-1

$('.leave_response').on('change', function() { 
 
    var responseId = $(this).val(); 
 
    console.log(responseId); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<td> 
 
    <select class="leave_response" name="leave"> 
 
     <option>1</option> 
 
     <option>2</option> 
 
     <option>3</option> 
 
     <option>4</option> 
 
    </select> 
 
</td>

Các vấn đề liên quan