llamar a la función javascript en el evento de cambio de la lista desplegable

2 minutos de lectura

Quiero invocar la función javascript cuando cambia el valor en la lista desplegable. No quiero codificar la identificación de la lista desplegable .

Por lo tanto, no usar document.getElementById

Mi código:

<select id ="ddl" name="ddl" onmousedown="this.value="";" onchange="jsFunction(this.value);">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

function jsFunction(value)
{
    alert(value);
}

esto esta dando error ReferenceError: jsFunction is not defined

Violín : http://jsfiddle.net/6uyz4b8x/1/

  • quiero esto? Tienes que actualizar la configuración de violín, cambiar el segundo menú desplegable a ahora en ¡a jugar!

    –Dhaval Marthak

    3 de noviembre de 2014 a las 7:57


  • @DhavalMarthak: ¡Sí, +1!

    – Peludo

    3 de noviembre de 2014 a las 8:00

Avatar de usuario de SilentTremor
Temblor silencioso

Su código funciona bien, debe declarar el método javscript antes de que DOM esté listo.

tu ejemplo de trabajo

Avatar de usuario de Bartek Andrzejczak
Bartek Andrzejczak

No sé por qué necesitas esto. onmousedown evento aquí, pero lo que tiene que hacer es poner su función por encima del uso real. Mira el fragmento a continuación:

<script type="text/javascript">
function jsFunction(value)
{
    alert(value);
}
</script>

<select id ="ddl" name="ddl" onmousedown="this.value="";" onchange="jsFunction(this.value);">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

usando jQuery

 $("#ddl").change(function () {
                alert($(this).val());
            });

jsviolín

  • ¿Qué sucede si también quiero obtener el texto de la selección? Lo intenté $(this).text() pero muestra todos los textos para todo el menú desplegable para cada clic.

    – Irrompible

    28 de julio de 2017 a las 13:32


Avatar de usuario de Dinesh.net
Dinesh.net

Solo intenta esto, es tan fácil

 <script>

  $("#YourDropDownId").change(function () {
            alert($("#YourDropDownId").val());
        });

</script>

jsFunction no está en buen cierre. cambiar a:

jsFunction = function(value)
{
    alert(value);
}

y no use variables y funciones globales, cámbielo a módulo

  • No resuelve el problema. Tu respuesta solo da un buen consejo.

    – Bartek Andrzejczak

    3 de noviembre de 2014 a las 8:05

  • Extraño… De hecho lo hace. Lo lamento 😉

    – Bartek Andrzejczak

    3 de noviembre de 2014 a las 8:10

  • funciona porque esto: stackoverflow.com/questions/336859/…

    – bemol

    3 de noviembre de 2014 a las 8:17

  • Cómo obtener el texto también

    – Irrompible

    28 de julio de 2017 a las 13:33

  • No resuelve el problema. Tu respuesta solo da un buen consejo.

    – Bartek Andrzejczak

    3 de noviembre de 2014 a las 8:05

  • Extraño… De hecho lo hace. Lo lamento 😉

    – Bartek Andrzejczak

    3 de noviembre de 2014 a las 8:10

  • funciona porque esto: stackoverflow.com/questions/336859/…

    – bemol

    3 de noviembre de 2014 a las 8:17

  • Cómo obtener el texto también

    – Irrompible

    28 de julio de 2017 a las 13:33

¿Ha sido útil esta solución?