2011-01-30 44 views
5

Làm cách nào tôi có thể đặt giá trị của trường nhập đã chọn thành giá trị của tùy chọn đầu tiên không bị tắtjQuery - đặt giá trị của một lựa chọn thành một trong các tùy chọn của nó

ví dụ: trong trường này, giá trị được chọn là 1. Làm thế nào tôi có thể thay đổi giá trị này thành tùy chọn không được vô hiệu hóa tiếp theo, tức là. 2?

<select> 
    <option disabled="disabled" value="1">1</option 
    <option value="2">2</option 
    <option disabled="disabled" value="3">3</option 
    <option value="4">4</option 
</select> 

Trả lời

12

ví dụ cho bạn, tôi sẽ sử dụng:

$("select option:not([disabled])").first().attr("selected", "selected");

nếu lựa chọn của bạn có một ID cụ thể ("#foo" chẳng hạn):

$("#foo option:not([disabled])").first().attr("selected", "selected");

+0

không hoạt động. trường chọn vẫn hiển thị tùy chọn bị tắt hoạt động ... – Alex

+0

Tôi đã chỉnh sửa đoạn trích một vài phút trước từ '.first' thành' .first() 'Bạn có đang sử dụng mã cũ không? – Potch

+1

trong html của bạn, các thẻ 'tùy chọn' có thực sự kết thúc bằng' ') – Potch

1
$('#id-for-select option:not(:disabled):first').click() 
+0

Sẽ không có thể là: đầu tiên vào cuối của bộ chọn? –

+0

Heh, yeah. Chỉnh sửa của tôi cho hiệu ứng đó được chuyển với mục nhập nhận xét của bạn. – chaos

+0

không hoạt động ... – Alex

0

thiết lập các thuộc tính được chọn của các tùy chọn:

<option id="value2" value="2">2</option> 

document.getElementById('value2').selected = true; 
+0

Đó không phải là jQuery ... –

+2

Tôi nghĩ rằng điểm là một trong những không biết trước đó là giá trị được kích hoạt đầu tiên ... –

1

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

$('#select-id-here option:enabled').first().attr('selected', 'selected'); 
3

Một chút sạch hơn so với các giải pháp khác:

$('#select_id').find('option:enabled:first').prop('selected',true); 
Các vấn đề liên quan