2012-07-27 45 views
7

我想要在select元素被點擊時獲取select元素的值!我想要在HTML中沒有onchange屬性。使用純JavaScript在事件中獲取select元素值

我想實現這個沒有jQuery。當這個小腳本是我需要的唯一東西時,我不想在這個網站中包含一個jQuery框架。

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;包含一個空字符串。我應該怎麼做?

+0

實際上這似乎爲我工作 型某物上[的jsfiddle(http://jsfiddle.net/9vW9g/)的點擊文本字段輸入 – C5H8NNaO4 2012-07-27 08:15:37

+0

如果你不想使用' onchange'然後不要使用'onchange'。向您的'select'元素添加一個'click'事件監聽器。 – 2012-07-27 08:16:23

+0

我也想過,但也許他只是不想在html標籤本身包含onchange, – C5H8NNaO4 2012-07-27 08:18:32

回答

3

一個解決方案,將與所有瀏覽器(包括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); 
};​ 

以上工作是否完成?

編輯:

編輯以反映你選擇的ID等

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

在看到它的工作:http://jsfiddle.net/gRoberts/4WUsG/

+0

不,上述不工作:( – 2012-07-27 08:24:58

+0

請參閱http://jsfiddle.net/gRoberts/4WUsG/ for working示例 – Gavin 2012-07-27 08:27:20

+0

我得到它的工作!乾杯:) – 2012-07-27 08:27:54

相關問題