2012-07-27 35 views
7

thuần túy Tôi muốn nhận giá trị của phần tử chọn khi phần tử chọn được nhấp! Tôi muốn làm điều đó mà không có thuộc tính onchange trong HTML.Nhận giá trị phần tử được chọn trên sự kiện bằng cách sử dụng JavaScript

Tôi muốn đạt được điều này mà không cần jQuery. Tôi không muốn bao gồm một khung công tác jQuery vào trang web này khi kịch bản nhỏ này là điều duy nhất tôi cần.

var select_element = document.getElementById('product-form-user-enquiry-type'); 

select_element.onchange = function(e){ 
    if (!e) 
     var e = window.event; 
    var svalue = select_element.value; 
    alert(svalue); 
} 
if (select_element.captureEvents){ 
    select_element.captureEvents(Event.CHANGE); 
} 

select_element.value; chứa một chuỗi rỗng. Làm thế nào tôi nên làm điều này?

+0

thực sự điều này dường như làm việc cho tôi loại sth trong trường văn bản trên [JSFiddle] (http://jsfiddle.net/9vW9g/) nhấp chuột vào – C5H8NNaO4

+0

Nếu bạn không muốn sử dụng ' onchange' sau đó không sử dụng 'onchange'. Thêm trình nghe sự kiện 'click' vào phần tử' select' của bạn. –

+0

tôi cũng nghĩ về điều đó, nhưng có lẽ anh ta chỉ không muốn đưa onchange vào thẻ html, – C5H8NNaO4

Trả lời

3

Một giải pháp mà sẽ làm việc với tất cả các trình duyệt (bao gồm IE8):

var select_element = document.getElementById('product-form-user-enquiry-type'); 

select_element.onchange = function() { 
    var elem = (typeof this.selectedIndex === "undefined" ? window.event.srcElement : this); 
    var value = elem.value || elem.options[elem.selectedIndex].value; 
    alert(value); 
}​ 
12
​document.getElementById('test').onchange = function() { 
    alert(this.options[this.selectedIndex].val​​​ue); 
};​ 

Công việc trên phải không?

Edit:

Edited để phản ánh bạn chọn id của, vv

var select_element = document.getElementById('product-form-user-enquiry-type'); 

select_element.onchange = function(e){ 
    if (!e) 
     var e = window.event; 
    var svalue = this.options[this.selectedIndex].value; 
    alert(svalue); 
}​ 

Xem nó làm việc tại địa chỉ: http://jsfiddle.net/gRoberts/4WUsG/

+0

Không, công việc trên không làm việc: ( –

+0

Xem http://jsfiddle.net/gRoberts/4WUsG/ để làm việc ví dụ – Gavin

+0

Tôi đã làm việc đó! –

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