Получить значение элемента select в событии с помощью чистого JavaScript
Я хочу получить значение элемента select при нажатии на элемент select! Я хочу сделать это без в HTML.
Я хотел бы достичь этого без 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;
содержит пустую строку. Как мне это сделать?
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);
}
document.getElementById('test').onchange = function() {
alert(this.options[this.selectedIndex].value);
};
делает вышеуказанное работу?
Edit:
отредактировано, чтобы отразить ваш select 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/
.onchange = function() { ... }
похоже, перезаписывает другие обработчики, поэтому я использую addEventListener ("изменить", функция () {... })