JavaScript和JQuery在select标签中的onchange调用时不起作用
JavaScript and JQuery do not work when called from onchange in a select tag
我是jquery和javascript的新手,我已经搜索了这个答案,找不到它。
我的选择标签:
<select id="selectarea" name="sometext" size="10" width="250" style="width: 250px" onchange="openDisciplina(this)">
<?php
foreach ($areas as $name) {
echo "<option value='" . htmlentities($name[0]) . "'>" . htmlentities($name[0]) . "</option>";
}
?>
</select><br>
和js函数:
<script>
function openDisciplina(element)
{
jQuery.ajax({
type: "POST",
url: "http://arenautfpr.com/professor/stage/disciplina/disciplina.php",
data: {dados:element.value},
success: function(data){
$('#novidades2').html(data);
}
});
}
</script>
当我调用这个函数时,它根本不起作用,什么都没有发生。即使我只在函数内放置一个警报,它也不会工作,所以我不认为这是ajax部分的问题。
在错误控制台上,当我选择一个选项时,我得到这个错误:
——解决ReferenceError: Can't find variable: openDisciplina
我发现问题是代码不在<head>
标签上,所以它不工作。
我将从select元素中删除javascript,并使用以下脚本:
$(document).ready( function() {
$("body").on( "change", "#selectarea", function() {
alert("changed");
//test with alert before putting your code in here
//jQuery.ajax({
//type: "POST",
//url: "relative/path/to/disciplina.php",
//data: {dados:this.value},
//success: function(data){
//$('#novidades2').html(data);
//}
//});
});
});
注意:
- 在ajax调用中,我将dados更改为
this.value
而不是element.value
。 - 使用相对路径代替绝对路径。php 由于
- 委托。我使用了
body
的委托,但是从#selectarea
更接近的父元素委托可能更有效。
#selectarea
是在dom加载后动态生成的,因此需要对事件进行在控制台中检查错误。它没有调用,因为有一些错误阻止调用这个函数。
尝试onchange事件处理程序。这里是小提琴链接
<select id="selectarea" name="sometext" size="10" >
<option val=1>One</option>
<option val=2>Two</option>
<option val=3>Three</option>
<option val=4>Four</option>
</select>
<script>
var s=document.getElementById('selectarea');
s.onchange=function(e){
console.log(e.target.value)
}
<script>
如果你只想使用以前的代码,那么试着把脚本块放在页首
相关文章:
- 从javascript调用服务器端的下拉列表onchange函数
- 从Document调用onchange函数.已准备好从更新中预先选择的项目
- 提交按钮只能在onchange调用输入文本后第二次点击时工作
- InnerHTML 调用 JavaScript 函数 onchange.
- jQuery不会接受编程元素.onchange()调用
- 在 onchange 上调用 2 个 JS 函数,并且都返回一些值
- 对于新建的元素,onchange函数只调用一次
- 如何在窗体打开时调用OnChange
- 在选择框的onchange期间调用JavaScript函数
- 从jQuery调用SelectHTML元素OnChange事件
- 如何在触发:onchange事件时调用ruby方法(ruby on rails 4)
- 在下拉列表中加载默认值并调用 onchange 事件
- Javascript函数不是从onchange调用的(并非总是如此)
- 为什么从子窗口调用时父窗口的 OnChange 事件文本框不起作用
- 如何调用一个jQuery Colorbox弹出在选择HTML控件的onchange事件
- 在 onChange 事件中调用 2 个函数
- this.value 在从 onchange 事件调用函数时显示为 undefind
- 使用onchange调用多个函数
- JavaScript和JQuery在select标签中的onchange调用时不起作用
- 通过一个 Onchange 调用两个函数()