django.jQuery с администратором django change_form.html - PullRequest
0 голосов
/ 20 января 2012

Я пытаюсь использовать библиотеку jQuery в django следующим образом. домен - это поле выбора с id = id_domain в форме с формой id = emailaccount_form. Эти идентификаторы автоматически генерируются 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 варианта выбора. Зачем? домен, если отображается как предупреждение (домен) отображает объект 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. Кто-нибудь может руководить? Также, как мне избавиться от 1-го пустого значения поля «Выбор» как одного из вариантов. Я хочу использовать только django.jQuery!

1 Ответ

1 голос
/ 20 января 2012

Вам просто не хватает хеш-метки?Помните, что jQuery нужен один для выбора идентификаторов, в то время как в родном для JavaScript getElementById нет.

var form = $("#emailaccount_form");
var domain = $("#id_domain");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...