调用下拉列表中的javascript函数onchange事件

时间:2014-11-03 07:56:04

标签: javascript html

我想在下拉列表中的值更改时调用javascript函数。 我不想硬编码下拉列表ID

因此不使用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/

5 个答案:

答案 0 :(得分:18)

您的代码工作正常,您需要在DOM准备好之前声明您的javascript方法。

your working example

答案 1 :(得分:11)

我不知道为什么你在这里需要这个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>

答案 2 :(得分:4)

使用jQuery

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

jsFiddle

答案 3 :(得分:4)

你试试这个,它很容易

 <script>

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

</script>

答案 4 :(得分:1)

jsFunction没有很好的关闭。改为:

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

并且不使用全局变量和函数,将其更改为module