Ответ 1
Ваш код работает только вам нужно объявить ваш javscript-метод до готовности DOM.
Я хочу вызвать функцию 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/
Ваш код работает только вам нужно объявить ваш javscript-метод до готовности DOM.
Я не знаю, зачем вам это событие 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>
Вы просто попробуете это, его так легко
<script>
$("#YourDropDownId").change(function () {
alert($("#YourDropDownId").val());
});
</script>
использование jQuery
$("#ddl").change(function () {
alert($(this).val());
});
Функция jsFunction не находится в хорошем закрытии. изменить на:
jsFunction = function(value)
{
alert(value);
}
и не использовать глобальные переменные и функции, изменять его в модуль