2010-08-30 23 views
10

Prueba de parte de un formulario. Por lo tanto, en este momento sólo quiero alertar lo selecciona el usuario:¿Por qué no obtengo el valor de onChange with Select?

JS:

function getData(title) 
{ 
    alert(title); 
} 

HTML generadas por PHP:

<select name="currentList" onChange="getData(this);"> 
    <option value="hat">Hat</option> 
    <option value="shirt">Shirt</option> 
    <option value="pants">Pants</option> 
</select> 

cuando cambio el valor consigo una alerta con:

[HTMLSelectElement objeto]

Respuesta

18

tratar alert(this.value)

+0

eso fue todo! He estado haciendo mucho AJAX así que las cosas pequeñas comienzan a escaparme. jaja! Aceptaré la respuesta una vez que se agote el límite de tiempo. ¡Gracias! – dcp3450

+0

Solo recuerda, esto alertará el valor del 'seleccionar'. Debería ver la respuesta de BalusC si quiere obtener el valor de la opción seleccionada. – soktinpk

11

Con this está pasando el HTML select element a la función, no el valor de la opción seleccionada. Para obtener el valor de la opción seleccionada, debe obtener la opción seleccionada del options por selectedIndex y luego obtener su value. En pocas palabras:

function getData(dropdown) { 
    var value = dropdown.options[dropdown.selectedIndex].value; 
    alert(value); 
} 
0

con jQuery, que podría ser conciso con alerta ;, siempre y cuando se agrega el id = "currentList" a la lista de selección ($ ("# currentList") val()). . De esta forma, no es necesario pasar "esto" a la función de cambio.

+0

intenté eso primero. El problema es que mi formulario se está creando dinámicamente. Jquery solo lo manejaría si mi casilla de selección estuviera estática en la página. Una vez que lo hice parte de una forma que cambia dinámicamente, dejó de reconocerlo. – dcp3450

+0

Habría necesitado unir el controlador de eventos al documento (o algún otro elemento contenedor que siempre estará presente) usando on, con un selector para su elemento dinámico. – grantwparks

-1

Puede intentar

alert(title.value) 
Cuestiones relacionadas