1

我尝试显示不同的内容。但我做错了。如果我检查 pid,它必须只显示 pid,如果我检查 pid 和标题,它必须同时显示。在我的示例中,我同时显示了两者,但是如何使用复选框来更改它?谢谢。

<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 %}
4

1 回答 1

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来伪造它。给跨度 aborder-left: 1px solid black和 aborder-right: 1px solid black什么的。

于 2013-06-13T15:19:30.667 回答