无法在 Select 框更改时触发事件

Can't Get Event To Fire On Select Box Change

我在这个页面上有一个成功触发的 $(document).ready(function() 函数(所以我的 javascript 正在成功加载)。

我试图在 select 框更改时触发事件,但根本无法触发(即使我将其设为点击事件)。这是在 Django Admin 中,所以我不能轻易地向元素添加 id(我相信这并不难,但我找不到方法)。

这是我要监听的元素:

<select name="base_module" required="" id="id_base_module">

这些是我尝试过的一些东西:

var test = document.querySelector('[name="base_module"]');
$(test).click(function(){
    console.log("success")
});

$('#id_base_module').click(function(){
    console.log("success")
});

$('select#id_base_module').change(function(){
    console.log("success")
});

我已经在我的 Django 管理页面中添加了我的 javascript 文件,并在关联的 admin.py 文件中的正确模型下使用此代码:

class Media:
        js = (
            'js/javascript.js',
        )

任何帮助在此元素上设置事件侦听器,当 select 框中的项目更改时将被触发,我们将不胜感激。

谢谢。

您肯定想使用 change 事件,而不是 click 事件。

这个:

$('#id_base_module').change(function(){
    console.log("success")
});

对我有用(与您在第三种方法中已有的相比变化不大)。您的第一种方法也适用,只需将其更改为使用 change 事件而不是 click.

原来我不得不使用以下内容:

$(document).on('change', '#id_base_module', function(event) {

由于'dynamically created content'。

感谢 trincont 在 中的回答。