使用纯 JavaScript 获取事件的选择元素值

我想在单击选择元素时获取选择元素的值!我想在 HTML 中没有 onchange 属性.

I want to get the value of a select element when the select element is clicked! I want to do it without an onchange attribute in the HTML.

我想在没有 jQuery 的情况下实现这一点.当这个小脚本是我唯一需要的东西时,我不想在这个网站中包含一个 jQuery 框架.

I would like to achieve this without jQuery. I don't want to include a jQuery framework into this website when this tiny script is the only thing I need.

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; 包含一个空字符串.我该怎么做?

The select_element.value; contains an empty string. How should I do this?

推荐答案

适用于所有浏览器(包括 IE8)的解决方案:

A solution that will work with all browsers (including 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);
}​

相关文章