2012-07-27 22 views
7

¡Quiero obtener el valor de un elemento seleccionado cuando se hace clic en el elemento seleccionado! Quiero hacerlo sin un atributo onchange en el HTML.Obtener el valor del elemento seleccionado en el evento usando JavaScript puro

Me gustaría lograr esto sin jQuery. No quiero incluir un marco jQuery en este sitio web cuando este pequeño script es lo único que necesito.

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

El select_element.value; contiene una secuencia vacía. ¿Cómo debería hacer esto?

+0

realidad esto parece funcionar para mí tipo algo en el campo de texto en [jsFiddle] (http://jsfiddle.net/9vW9g/) un clic introducir – C5H8NNaO4

+0

Si no desea utilizar ' onchange' luego no use 'onchange'. Agregue un detector de eventos 'click' a su elemento' select'. –

+0

pensé en eso también, pero tal vez simplemente no quiere incluir onchange en la etiqueta html misma, – C5H8NNaO4

Respuesta

3

Una solución que funcione con todos los navegadores (incluyendo 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); 
};​ 

¿Hace lo anterior el trabajo?

Editar:

Editado para reflejar sus selectos de id etc.

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

ver su funcionamiento en: http://jsfiddle.net/gRoberts/4WUsG/

+0

No, lo anterior no funciona :( –

+0

Ver http://jsfiddle.net/gRoberts/4WUsG/ para un funcionamiento ejemplo – Gavin

+0

¡Lo tengo funcionando! ¡Saludos :) –

Cuestiones relacionadas