вызывать функцию javascript onchange событие выпадающего списка

Я хочу вызвать функцию javascript, когда значение в раскрывающемся списке изменяется. Я не хочу указать идентификатор выпадающего списка hardcode.

Следовательно, не используя document.getElementById

Мой код:

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

Это дает ошибку ReferenceError: jsFunction is not defined

Скрипт: http://jsfiddle.net/6uyz4b8x/1/

Ответы

Ответ 1

Ваш код работает только вам нужно объявить ваш javscript-метод до готовности DOM.

your working example

Ответ 2

Я не знаю, зачем вам это событие onmousedown здесь, но вам нужно сделать свою функцию выше фактического использования. Посмотрите на snipplet ниже:

<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>

Ответ 3

Вы просто попробуете это, его так легко

 <script>

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

</script>

Ответ 4

использование jQuery

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

jsFiddle

Ответ 5

Функция jsFunction не находится в хорошем закрытии. изменить на:

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

и не использовать глобальные переменные и функции, изменять его в модуль