Джанго JQuery переключаться в форме от модели - PullRequest
1 голос
/ 09 марта 2011

Мне было интересно, смогу ли я получить некоторые рекомендации, используя jquery в django.

У меня есть форма из модели, в которой я хотел бы отображать определенные поля формы на основе установленного или не отмеченного флажка.Также может быть сделано с помощью кнопки.Я уже использую Jquery DatePicker и Timepicker в форме, которая отлично работает.Переключатель Jquery здесь http://api.jquery.com/toggle/. Я могу заставить его работать в другом месте, но не внутри формы.

Вот некоторый код шаблона, где 'e' - это форма из передаваемой модели, средство выбора датыкод, включенный как пример того, как должно работать переключение, и переключайте код, используя кнопку для переключения.Заранее спасибо.

~ Rich

{% block head %}
<link type="text/css" href="/media/jquery-ui-1.8.7.custom/css/ui-lightness/jquery-ui-1.8.7.custom.css" rel="stylesheet" />   
    <script type="text/javascript" src="/media/jquery-ui-1.8.7.custom/js/jquery-1.4.4.min.js"></script>
    <script src="http://code.jquery.com/jquery-1.5.js"></script>
    <link type="text/css" href="/media/jquery-ui-1.8.7.custom/jquery.timepicker-1.1.0/jquery.timepicker-1.1.0.css" rel="stylesheet" />   
    <script type="text/javascript" src="/media/jquery-ui-1.8.7.custom/jquery.timepicker-1.1.0/jquery.timepicker-1.1.0.js"></script>
    <script type="text/javascript" src="/media/jquery-ui-1.8.7.custom/js/jquery-ui-1.8.7.custom.min.js"></script>
{% endblock %}

{% block content %}
<script type="text/javascript">
<!--jquery datepicker-->
$(function() {
    $("#id_start_date, #id_end_date").datepicker({ showOn: "both",
        buttonImage: "/media/calendar.gif",
        buttonImageOnly: true,
        changeMonth: true,
        changeYear: true,
        dateFormat: 'yy-mm-dd' });
 });
</script>
<script>
$("#id_allday").click(function () {
$('#toggle').toggle("slow");
});   
</script>

<form action="" method="POST">
<fieldset style="width:700px; margin-left: auto; margin-right: auto; border: 1px solid #ff9900">
    <legend style="color: #ff9900; font-weight: bold">New</legend>
<table >
    <tbody>
    <tr><td style="vertical-align: top;">Date: {{e.start_date.errors}} {{e.start_date}}</td>
    <td style="vertical-align: top;">End Date {{e.end_date.errors}} {{e.end_date}}</td>
    </tr>
    <tr><td style="vertical-align: top;">Time: All Day {{e.allday.errors}} {{e.allday}}
<button>Add times</button></td>
    <div id='toggle'>
   <td style="vertical-align: top;">Start Time: {{e.start_time.errors}} {{e.start_time}}<br></td></tr>
    <td style="vertical-align: top;">End Time: {{e.end_time.errors}} {{e.end_time}}</td> </tr>
    </div>
    </tbody>
    </table>
<input value="Submit" type="submit"></fieldset></form>

</div>
{% endblock %}

1 Ответ

2 голосов
/ 10 марта 2011

Попробуйте поместить код события jQuery в функцию onload, иначе элементы формы еще не будут существовать в dom, и jQuery пока не будет ничего запрашивать.

$(document).ready(function() {
    $("#id_allday").click(function () {
        $('#toggle').toggle("slow");
    })
}

Также вы можете захотетьпривязать к изменению вместо щелчка, если кто-то переключает ввод с помощью пробела вместо кнопки мыши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...