Javascript 未捕获的TypeError:$.ajax不是一个函数|基于Django模型更新下拉列表
我在尝试更新基于Django模型的下拉列表元素时遇到了一个问题,这是由另一个下拉列表触发的,我们称之为更改 我遵循了本教程: 当我更改下拉列表A时,会出现以下错误:Javascript 未捕获的TypeError:$.ajax不是一个函数|基于Django模型更新下拉列表,javascript,html,jquery,django,ajax,Javascript,Html,Jquery,Django,Ajax,我在尝试更新基于Django模型的下拉列表元素时遇到了一个问题,这是由另一个下拉列表触发的,我们称之为更改 我遵循了本教程: 当我更改下拉列表A时,会出现以下错误: Uncaught TypeError: $.ajax is not a function 基于类似的问题,我确保在脚本之前包含这一行: <script type="text/javascript" src="https://code.jquery.com/jquery-3.6.0.min.js
Uncaught TypeError: $.ajax is not a function
基于类似的问题,我确保在脚本之前包含这一行:
<script type="text/javascript" src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
我没有使用jquery的精简版本
下面是我的下拉列表A和JS的HTML代码部分,负责更新第二个下拉列表
<select id="my-selection" dropdown-data-url="{% url 'ajax_get_data' %}">
<option value="1">First Option</option>
<option value="2">Second Option</option>
</select>
<script>
$(document).ready(function() {
$("#my-selection").change(function () {
var url = $("#my-selection").attr("dropdown-data-url"); // get the url of the proper view
var my_selection = $(this).val(); // get the selected input from dropdown
$.ajax({
url: url,
data: {
'selection': my_selection // add selected option to the GET parameters
},
success: function (data) {
$("#second-dropdown-selection").html(data);
}
});
});
});
</script>
如果您有任何建议,我将不胜感激。您可能错过了ajax调用中的GET/POST类型
$.ajax({
url: url,
type:'get', //add this
data: {
'selection': my_selection
},
success: function (data) {
$("#second-dropdown-selection").html(data);
}
});
事实证明,我的项目3.2.1 slim中有另一个jQuery版本,但是我没有在任何地方导入它,可能有些Django库引用了它,但我找不到它 为了解决这个问题,我使用jQuery 3.6.0标准版本
<script type="text/javascript"> $360 = jQuery.noConflict();</script>
然后,我在ajax中使用$360而不是$point来使用这个特定的jQuery版本。你确定没有另一个jQuery.js加载到另一个slim版本的脚本标记中吗?这是导致此错误的一个非常常见的原因显示完整错误。@charlietfl我检查了它,这是我加载jquery的唯一位置。您是否认为slim版本可能会间接包含在其他库中?您可能有一个捆绑程序将脚本合并到一个文件中?@charlietfl我不使用任何捆绑程序,但是当我在浏览器中打开console和debugger时,我确实看到两个jquery版本:我指定的3.6.0和3.2.1 slim,我在我的项目中找不到任何对slim版本的引用,因为默认情况下,它不会导致错误操作