2014-05-15 45 views
5

CẬP NHẬTHTML select.value trong "trình duyệt cũ"

Đáng tiếc là tôi đã gây ra một số rắc rối bằng cách nói chuyện về .value bất động sản, nhưng sau đó yêu cầu bất kỳ tài liệu tham khảo tính năng hỗ trợ trong các trình duyệt. Trong tầm nhìn, tôi đoán điều tôi cần ngay bây giờ là biết liệu .value là "an toàn" để sử dụng không, và đó là lý do tại sao tôi chấp nhận câu trả lời của @ BeatAlex (khi họ cố gắng thực sự thử nghiệm trên nhiều trình duyệt). .


ORIGINAL HỎI

sử dụng javascript, the accepted way để có được/thiết lập giá trị của chọn <option> trong một <select> đang sử dụng .value tài sản.

Trong nhiều năm và nhiều năm, tôi đã không sử dụng thuộc tính .value, như tôi đã nói rằng "trình duyệt cũ" không hỗ trợ nó. Thay vào đó tôi sử dụng các hình thức dài ...

dd.options[dd.selectedIndex].value; 

Nhưng tôi vừa thực hiện một số nghiên cứu, và tôi không thể tìm thấy bất kỳ tài liệu tham khảo để "trình duyệt cũ" này ảnh hưởng. Ví dụ: this quirksmode article thậm chí đề cập đến "trình duyệt cũ" nhưng không cung cấp thêm bất kỳ thông tin nào.

"Trình duyệt cũ" nào không có thuộc tính .value trên phần tử <select>? Có một tham chiếu ở đâu đó chính xác khi các tính năng cụ thể có sẵn trong các trình duyệt chính không?

Lưu ý: không may jQuery là hiện không có sẵn cho tôi, do một thành phần bên thứ 3 cũ đang được sử dụng trên hệ thống

+0

http://www.w3schools.com/jsref/prop_option_value.asp Không phải câu trả lời nhưng có thể giúp .... – Bhavik

+2

Xin lỗi @Bhavik, nhưng tôi hoàn toàn ghét w3schools ([xem trang web này vì sao] (http://w3fools.com)), và thực sự nhìn vào trang đó không nói bất cứ điều gì mà tôi chưa biết – freefaller

+0

@freefaller chờ đợi, bạn chỉ cần tìm http://caniuse.com/? –

Trả lời

4

.value công trình đối với tôi trong hầu hết các trình duyệt lâu đời nhất được hỗ trợ trong Windows XP.

<select id="select"> 
    <option value="Hello1">1</option> 
    <option value="Hello2">2</option> 
    <option value="Hello3">3</option> 
    <option value="Hello4">4</option> 
    <option value="Hello5">5</option> 
</select> 

JavaScript:

var id = document.getElementById("select"); 

id.onchange = function(){ 
alert(this.value); 
} 

này hoạt động trên:

(Tất cả chạy từ Windows XP)

  • IE6

  • Firefox 3.0

  • Safari 4.0

  • Chrome 14.0

  • Opera 10,6

Đây là xa như Browserstack đi trở lại.

+2

Không phải là câu trả lời cho những gì được hỏi .... – Bhavik

+0

Nghĩ rằng tôi bối rối rồi ... @Bhavik – Albzi

+0

Cảm ơn @BeatAlex ... nhưng những gì về các phiên bản đầu của Chrome, FireFox, Safari, Opera, v.v ... tất cả những trình duyệt * có thể * có khả năng thất bại nếu '.value' được sử dụng? – freefaller

2

Dường như chúng tôi cần truy cập IE 3 để tìm trình duyệt không hỗ trợ thuộc tính value cho phần tử select. Tôi tìm thấy a problem description nói rằng: “Tôi đang gặp một số sự cố khi nhận giá trị của một tùy chọn đã chọn trong IE3.0.2. [Mã truy cập tài sản value] sau đây hoạt động với tất cả các tính năng của Netscape và IE 4 ”và trích dẫn thông báo lỗi IE 3“ Giá trị không phải là một đối tượng ”.

Điều này có nghĩa là trên thực tế hiện chúng tôi có thể coi value được hỗ trợ toàn cầu.

+0

Điều ấn tượng nhất là theo trang đó, IE3 là khoảng năm 1902 ;-) Cảm ơn @Jukka, thật không may nó vẫn không trả lời nếu có bất kỳ loại tham chiếu đến khi các tính năng cụ thể được hỗ trợ – freefaller

+0

xin vui lòng xem cập nhật của tôi cho câu hỏi ... Tôi nghĩ rằng tôi đã gây ra sự nhầm lẫn, và hy vọng rằng sẽ khắc phục nó. Cảm ơn sự giúp đỡ của bạn – freefaller

+0

Tôi nghĩ rằng đây là câu trả lời hay nhất cho câu hỏi * gốc * của bạn, vẫn còn in đậm trong đó: IE 3 thiếu hỗ trợ, IE 4 đã có nó. Tôi không nghĩ nên thay đổi câu hỏi, ngay cả với câu hỏi có liên quan (điều này thực sự đơn giản hơn, vì chúng ta hầu như không cần phải lo lắng về bất cứ điều gì cũ hơn IE 6 những ngày này). –

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