2012-07-27 12 views
7

select要素がクリックされたときにselect要素の値を取得したい!私はonchange属性なしでHTMLにしたい純粋な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

を使用するが、実際には 'あなたが使用したくない場合 – C5H8NNaO4

+0

を入力してクリック[JSFiddle](http://jsfiddle.net/9vW9g/)上のテキストフィールドに私のため タイプSTHを動作するようですonchange'を使用しないでください。あなたの 'select'要素に' click'イベントリスナーを追加してください。 –

+0

私はそれについても考えましたが、おそらく彼はhtmlタグ自体にonchangeを含めることを望んでいません、 – C5H8NNaO4

答えて

3

(IE8を含む)すべてのブラウザで動作するソリューション::など

編集を反映するために、あなたの選択の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); 
}​ 

はで働いて、それを参照してください

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

上記は機能しますか?

編集:http://jsfiddle.net/gRoberts/4WUsG/

+0

いいえ、上記doesntの仕事:( –

+0

http://jsfiddle.net/gRoberts/4WUsG/を参照してください例 – Gavin

+0

私はそれが働いた!乾杯:) –

関連する問題