2010-07-03 33 views
65

điều này hoạt động hoàn hảoLàm thế nào để có được javascript Chọn hộp của văn bản đã chọn

<select name="selectbox" onchange="alert(this.value)"> 

Nhưng tôi muốn để chọn văn bản. Tôi đã thử theo cách này

<select name="selectbox" onchange="alert(this.text)"> 

Nó hiển thị không xác định. Tôi đã tìm cách sử dụng DOM để lấy văn bản. Nhưng tôi muốn làm điều này theo cách này, tôi có nghĩa là chỉ cần sử dụng this.value.

Trả lời

107
this.options[this.selectedIndex].innerHTML 

sẽ cung cấp cho bạn văn bản "được hiển thị" của mục đã chọn. this.value, như bạn đã nói, chỉ cung cấp giá trị của thuộc tính value.

+0

Cảm ơn Điều này hoạt động. – Aajahid

+6

Tôi không thích. Mặc dù tôi chắc chắn rằng nó hoạt động trên các trình duyệt hiện tại, đó là một hỗn hợp kỳ lạ của mã dựa trên phần tử DOM và mã thao tác biểu mẫu kiểu cũ. 'options' trả về một danh sách các đối tượng' Option', mà tôi không chắc chắn được chỉ định ở bất kỳ đâu giống như các phần tử '

+0

Tim, đối tượng 'Option' giống như đối tượng' HTMLOptionElement'. Nếu bạn phản đối bằng cách sử dụng 'tùy chọn', bạn có thể sử dụng' children' hoặc 'childNodes' thay thế (không thể nhớ chính xác cái nào; tôi nghĩ cả hai đều hoạt động) –

55

Để có được giá trị của mục đã chọn bạn có thể làm như sau:

this.options[this.selectedIndex].text 

Ở đây khác nhau options của chọn được truy cập, và SelectedIndex được sử dụng để chọn đã chọn một, sau đó nó text đang được truy cập.

Đọc thêm về DOM chọn here.

+0

'this.options [this.selectedIndex] .value' giống hệt' this.value', xin lỗi. –

+0

@Delan Azabani - câu trả lời được cập nhật. – Oded

+0

Khi tôi sử dụng this.options [this.SelectedIndex] .trình điều khiển lỗi văn bản nói - Lỗi: this.options [this.SelectedIndex] là không xác định – Aajahid

1

Tôi biết không ai được yêu cầu cho một giải pháp jQuery ở đây, nhưng có thể là đáng nói rằng với jQuery bạn chỉ có thể yêu cầu: $('#selectorid').val()

+1

Điều đó sẽ chỉ hoạt động nếu giá trị của tùy chọn không được đặt. – profitehlolz

28

Vui lòng thử mã này:

$("#YourSelect>option:selected").html() 
+0

siêu dễ dàng! Cảm ơn! – Louie

+0

Cảm ơn! điều này trả về giá trị của mục đã chọn trong combobox –

23

Chỉ cần sử dụng

$('#SelectBoxId option:selected').text(); Để Bắt văn bản như được liệt kê

$('#SelectBoxId').val(); Đối với Bắt chọn Index trị

+1

Trong khi điều này hoạt động hoàn hảo cho jQuery, OP chỉ liệt kê javascript dưới dạng thẻ ban đầu. Tuy nhiên, +1 vì rất nhiều người sử dụng jQuery. – Sablefoste

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