2012-07-27 16 views
7

Chcę uzyskać wartość wybranego elementu po kliknięciu wybranego elementu! Chcę to zrobić bez atrybutu onchange w kodzie HTML.Uzyskaj wartość wybranego elementu dla zdarzenia za pomocą czystego JavaScriptu

Chciałbym osiągnąć to bez jQuery. Nie chcę dołączać frameworku jQuery do tej witryny, gdy ten mały skrypt jest jedyną potrzebną rzeczą.

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; zawiera pusty ciąg. Jak mam to zrobić?

+0

rzeczywiście wydaje się działać dla mnie typu czegoś w polu tekstowym na [JSFiddle] (http://jsfiddle.net/9vW9g/) kliknięcia wprowadzić – C5H8NNaO4

+0

Jeśli nie chcesz używać ' onchange', a następnie nie używaj 'onchange'. Dodaj detektor zdarzeń 'click' do swojego elementu' select'. –

+0

też o tym myślałem, ale może on po prostu nie chce włączać zmiany w samym znaczniku html, – C5H8NNaO4

Odpowiedz

3

rozwiązanie, które będzie działać ze wszystkimi przeglądarkami (w tym 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); 
};​ 

Czy powyższa praca?

Edit:

Edited by odzwierciedlać wybierz id użytkownika itp

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); 
}​ 

Zobacz pracuje w: http://jsfiddle.net/gRoberts/4WUsG/

+0

Nie, powyższe nie działa :( –

+0

Zobacz http://jsfiddle.net/gRoberts/4WUsG/ dla pracy przykład – Gavin

+0

Mam to działa! Wiwaty :) –

Powiązane problemy