2010-09-02 38 views
35

Tôi có trình đơn thả xuống bình thường mà tôi muốn lấy chỉ mục hiện được chọn và đặt chỉ mục đó vào một biến. Jquery hoặc javascript. Jquery bối rối.cách lấy chỉ mục đã chọn thả xuống

<select name="CCards"> 
<option value="0">Select Saved Payment Method:</option> 
<option value="1846">test xxxx1234</option> 
<option value="1962">test2 xxxx3456</option> 
</select> 

Trả lời

60

$("select[name='CCards'] option:selected") nên làm các trick

tài liệu

Xem jQuery để xem chi tiết hơn: http://api.jquery.com/selected-selector/

UPDATE: nếu bạn cần index của các tùy chọn được chọn, bạn cần phải sử dụng .index() jquery phương pháp:

$("select[name='CCards'] option:selected").index() 
+4

Gọi 'index()' là đơn đặt hàng của công việc bận rộn tìm kiếm danh sách nhiều hơn so với chỉ sử dụng DOM 'selectedIndex' chuẩn và không thể đọc được nữa. Tôi muốn gắn bó với tài sản DOM đơn giản ở đây. – bobince

+0

@bobince: Tôi sẽ không sử dụng jQuery để giải quyết câu hỏi này, nhưng như OP đã yêu cầu giải pháp jQuery ... :-) – naivists

+0

Đây là điều đơn giản nhất và chính xác những gì tôi đang tìm kiếm. Dòng thứ hai hoạt động hoàn hảo, tôi sử dụng nó như var indx = $ ("select [name = 'CCards'] option: selected"). Index(); – user357034

5
<select name="CCards" id="ccards"> 
    <option value="0">Select Saved Payment Method:</option> 
    <option value="1846">test xxxx1234</option> 
    <option value="1962">test2 xxxx3456</option> 
</select> 

<script type="text/javascript"> 

    /** Jquery **/ 
    var selectedValue = $('#ccards').val(); 

    //** Regular Javascript **/ 
    var selectedValue2 = document.getElementById('ccards').value; 


</script> 
24

này sẽ nhận được chỉ số tùy chọn chọn về biến đổi:

$('select').change(function(){ 
 
    console.log($('option:selected',this).index()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="CCards"> 
 
<option value="0">Select Saved Payment Method:</option> 
 
<option value="1846">test xxxx1234</option> 
 
<option value="1962">test2 xxxx3456</option> 
 
</select>

+0

Rất tốt, cảm ơn ... – PaulM

9

chỉ số thực tế có sẵn như là một thuộc tính của yếu tố lựa chọn.

var sel = document.getElementById('CCards'); 
alert(sel.selectedIndex); 

bạn có thể sử dụng chỉ mục để truy cập tùy chọn lựa chọn, nơi bạn có thể kéo văn bản và giá trị.

var opt = sel.options[sel.selectedIndex]; 
alert(opt.text); 
alert(opt.value); 
21

Nếu bạn đang thực sự tìm kiếm các số chỉ mục (và không phải là giá trị) của các tùy chọn chọn sau đó nó sẽ là

document.forms[0].elements["CCards"].selectedIndex 
/* You may need to change document.forms[0] to reference the correct form */ 

hoặc sử dụng jQuery

$('select[name="CCards"]')[0].selectedIndex 
1

Bạn cũng có thể sử dụng :checked cho <select> yếu tố

ví dụ:

document.querySelector('select option:checked') 
document.querySelector('select option:checked').getAttribute('value') 

Bạn thậm chí không phải lấy chỉ mục và sau đó tham chiếu phần tử theo chỉ mục anh chị em của nó.

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