Javascript onchange选择不工作

Javascript onchange选择不工作,javascript,html,Javascript,Html,我试图在select元素上使用javascript创建onchange事件。但它不起作用,有没有暗示我做错了什么 脚本 <script type="text/javascript"> function check() { alert("Hi"); } </script> HTML <body> <select name="selTitle" id="titles" onchange="check();"> <option value

我试图在select元素上使用javascript创建onchange事件。但它不起作用,有没有暗示我做错了什么

脚本

<script type="text/javascript">
function check() {
   alert("Hi");
}
</script>
HTML

<body> 
<select name="selTitle" id="titles" onchange="check();">
<option value="Mr.">Mr.</option>
<option value="Ms.">Ms.</option>
</select>
</body>

演示-

小提琴中的问题是JavaScript代码正在运行,以响应小提琴上默认的窗口加载事件。您运行的任何代码都是在加载回调的上下文中定义的,而不是在全局范围中定义的。如果您查看实际生成的框架HTML,您会发现它如下所示

$(window).load(function(){
    function check() {
     alert("Hi");
  }

});
这意味着您的代码定义了一个本地加载回调的检查函数,但事件处理程序希望调用一个全局定义的检查函数

要解决这个问题,您需要使用一个在全局上下文中定义JavaScript的FIDLE设置。尽量不要裹头


Fiddle:

Fiddle中的问题是JavaScript代码正在运行,以响应Fiddle上默认的窗口加载事件。您运行的任何代码都是在加载回调的上下文中定义的,而不是在全局范围中定义的。如果您查看实际生成的框架HTML,您会发现它如下所示

$(window).load(function(){
    function check() {
     alert("Hi");
  }

});
这意味着您的代码定义了一个本地加载回调的检查函数,但事件处理程序希望调用一个全局定义的检查函数

要解决这个问题,您需要使用一个在全局上下文中定义JavaScript的FIDLE设置。尽量不要裹头


Fiddle:

我已经测试过,效果非常好:

<script name="text/javascript">
    function check() {
      alert("Hi");
    }
</script>    

<body>
<select name="selTitle" id="titles" onchange="check();">
<option value="Mr." value="1">Mr.</option>
<option value="Ms." value="2">Ms.</option>
</select>
</body>

我已经对此进行了测试,效果非常好:

<script name="text/javascript">
    function check() {
      alert("Hi");
    }
</script>    

<body>
<select name="selTitle" id="titles" onchange="check();">
<option value="Mr." value="1">Mr.</option>
<option value="Ms." value="2">Ms.</option>
</select>
</body>

脚本在哪里与HTML文档合并?您提供的代码对我有用。我没有在标题标记中包含脚本。@Vikas-不知道为什么会这样。对我来说,它只在脚本位于head内部时工作。脚本在哪里与HTML文档合并?您提供的代码对我有效。我没有在标题标记中包含脚本。@Vikas-不知道为什么会这样。对我来说,它只在脚本在头里面时才起作用。@JaredPar-那就行了。。但我不知道你是怎么用小提琴演奏的。代码看起来很相似。@Buxme:请看左侧的设置,没有包裹头。@JaredPar-可以。。但我不知道你是怎么用小提琴演奏的。代码看起来很相似。@Buxme:请看左侧的设置“无包裹头”。