14

我想在单击选择元素时获取选择元素的值!我想在 HTML 中没有onchange属性的情况下这样做。

我想在没有 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;包含一个空字符串。我该怎么做?

4

3 回答 3

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/

于 2012-07-27T08:18:17.937 回答
11

适用于所有浏览器(包括 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);
}​
于 2015-08-26T14:57:54.540 回答
1

.onchange = function() { ... }似乎覆盖了其他处理程序,所以我使用addEventListener("change", function() { ... })

于 2016-03-17T10:21:52.177 回答