2013-06-13 2 views
1

Я стараюсь отображать разные материалы. Но что-то я делаю ложным. Если я проверяю pid, он должен показывать только pid, если я проверяю pid и заголовок, он должен показывать оба. В моем примере я показываю оба, но как я могу изменить его с помощью флажков? Спасибо.Django checkbox содержание дисплея

<form class="fedora" method="post">{% csrf_token %} 
    <input type="checkbox" name="pid" value="{{obj.pid}}"> pid 
    <input type="checkbox" checked name="title" value="{{obj.title}}"> title 
</form> 

... 

{% fedora_access %} 
     <p><a href="{% url 'display' obj.pid %}"> 
     {%if obj.pid %} {{ obj.pid }}|{% endif %}   
     {{ obj.pid }} | {{ obj.title }} 
     </a></p> 
{% end_fedora_access %} 
+0

Вы можете сделать это, используя только jquery. Wrap '{{obj.title}}' в промежутке, а на флажке щелкните, просто покажите или скройте заголовок – karthikr

ответ

1
<form class="fedora" method="post">{% csrf_token %} 
    <input type="checkbox" id="show_pid" name="pid" value="{{obj.pid}}"> pid 
    <input type="checkbox" id="show_title" checked name="title" value="{{obj.title}}"> title 
</form> 

... 

{% fedora_access %} 
     <p><a href="{% url 'display' obj.pid %}">  
     <span class="show_pid">{{ obj.pid }}</span> | <span class="show_title">{{ obj.title }}</span> 
     </a></p> 
{% end_fedora_access %} 

Тогда в JavaScript:

$(function() { 
    $('#show_pid').click(function() { 
     if ($(this).is(':checked')) $('.show_pid').show(); 
     else      $('.show_pid').hide(); 
    }); 
    $('#show_title').click(function() { 
     if ($(this).is(':checked')) $('.show_title').show(); 
     else      $('.show_title').hide(); 
    }); 
}); 

хотя, когда ни проверяются, вы будете иметь | все еще показывает. Вы можете подделать это с помощью css. Дайте пролеты border-left: 1px solid black и border-right: 1px solid black или что-то в этом роде.

+0

Спасибо за ответ. Я хочу сделать это без javascript. Просто используя форму –

+0

{% csrf_token%} {{form}} pid title

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