django.jQuery与django admin change_form.html

0 投票
1 回答
1055 浏览
提问于 2025-04-17 10:40

我正在尝试使用Django的jQuery库。这里有一个选择框,id是id_domain,表单的id是emailaccount_form。这些id是Django自动生成的。

在静态文件test.js中,jQuery的代码如下:

<script type="text/javascript">
(function($){
    $(document).ready(function($){
    var form = $("emailaccount_form");
    var domain = $("id_domain");
    //number of domains include null as 1 value
    alert(domain.length);
    if ((!domain[0].value) && (domain.length > 1)){ 
        if (domain.length == 2){ 
        //select domain by default as it is the only available choice
        domain.selectedIndex = 1;
        alert('Domain ' + domain.value);
        }
    }
    });
})(django.jQuery);
</script>

执行后,我发现domain.length的值是0,尽管选择框中实际上有2个选项。为什么会这样?当我用alert(domain)显示时,它显示的是object Object,而不是object HTMLSelectElement。

再看看第二种情况,下面的JavaScript代码能得到我想要的结果:

<script type="text/javascript">
   var domain = document.getElementById("{{ adminform.form.domain.auto_id }}");
   alert(domain);
   alert ("Number of domains: " + (domain.length-1));
   </script>

Django.jQuery哪里出了问题?有没有人能指导一下?另外,我想去掉选择框中的第一个空值选项。我只想使用Django.jQuery!

1 个回答

1

你是不是忘了加一个井号(#)?记住,jQuery在选择ID的时候需要在前面加一个井号,而JavaScript自带的getElementById方法就不需要。

var form = $("#emailaccount_form");
var domain = $("#id_domain");

撰写回答