2016-05-18 4 views
-1

Когда я нажимаю на поле даты, он ничего не показывает. Я тестировал его в хроме, а также в firefox. Но это не работаетJQuery не работает в django

models.py

class ProfileEditForm(forms.ModelForm): 
class Meta: 
    model = Profile 
    fields = ('date_of_birth', 'photo') 
    widgets = {'date_of_birth' : forms.DateInput(attrs={'class':'datepicker'})} 

HTML

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title>{% block title %}{% endblock %}</title> 
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css"> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script> 

    <link href="{% static "css/base.css" %}" rel="stylesheet"> 
    <script> 
     $(document).ready(function() { 
      $('.datepicker').datepicker(); 
     }); 
    </script> 
+0

Вы можете проверить свою консоль на предмет какой-либо ошибки? – dreamweiver

+0

Нет ошибки, но ее отображение: 18/май/2016 07:14:41] "GET/account/edit/HTTP/1.1" 200 2792 [18/May/2016 07:14:41] "GET/static /css/base.css HTTP/1.1 "304 0 @dreamweiver –

+0

@JagdeepSidhu комментарий выше был о консоли браузера, а не в командной строке. Браузер должен давать вам ошибки, если есть проблема с Javascript. – achedeuzot

ответ

0

Вы смотрели на браузера консоли? Есть ли там ошибки?

Похоже, что ваш class Meta в том же отступе, что и class ProfileEditForm, что не очень хорошо. class Meta должен быть отступом внутри class ProfileEditForm или изменения не будут приняты во внимание. Как так:

class ProfileEditForm(forms.ModelForm): 

    class Meta: # <=== Indent this 
     model = Profile 
     fields = ('date_of_birth', 'photo') 
     widgets = {'date_of_birth' : forms.DateInput(attrs={'class':'datepicker'})} 
+0

«TypeError: $ (...). Datepicker не является функцией» отображается на консоли –

+0

@JagdeepSidhu: посмотрите на ответ Таруна. Возможно, это правильный выбор для вас. – trantu

+0

он все еще показывает ту же ошибку. @trantu –

0
<script> 
    $(document).ready(function() { 
     $('.datepicker').datepicker(); 
    }); 
</script> 

Предполагая, что ваш DatePicker не работает, Вы инициализирован $('.datepicker') до этого элемент получил оказаны. Переместите этот тег скрипта до конца тега body, и вам хорошо идти. Также библиотека датпикера не включена.

+0

и как загрузить эту библиотеку datepicker –

+0

проверьте ссылки cdn для этой библиотеки https://cdnjs.com/libraries/jquery-datetimepicker. Включите их в раздел главы. –

0

После того, как ваша страница загружается, попробуйте запустить это в консоли браузера $('.datepicker').datepicker(); Если это помогает в показе DateField, это означает, что DatePicker работает нормально и вам просто нужно добавить сценарий для DatePicker в конце вы телом тела.

Теперь для добавления datepicker.js или любого другого файла JavaScript нужно добавить

class Media: js = ('[path to you js file/filename.js]',)

методу "ProfileEditForm" в admin.py

Примечание: Также убедитесь, что файлы jQuery не связаны более одного раза. Они также могут создавать проблемы.

Смежные вопросы