以Django形式动态显示和隐藏字段 [英] Show and hide dynamically fields in Django form

查看:363
本文介绍了以Django形式动态显示和隐藏字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Django中有一个表单:

I have a form in Django:

views.py:

class SearchForm(forms.Form):
    type = forms.ChoiceField(choices = ...)
    list1 = forms.ModelMultipleChoiceField(...)
    list2 = forms.ModelMultipleChoiceField(...)

home.htm:

<td valign='top'>{{ form.type }}</td>
<td valign='top'>{{ form.list1 }}</td>
<td valign='top'>{{ form.list2 }}</td>
<td valign='top'><input type="submit" value="Find" /></td>

如果类型为1,我希望显示list1元素,隐藏list2,反之亦然如果type为2,则希望它们隐藏并动态显示,而无需重新加载页面或与服务器进行任何交互。

I want the list1 element to be shown and the list2 to be hide if type is 1 and vice versa in case type is 2. I want them to be hide and shown dynamically without reloading the page or any interaction with the server.

我相信Javascript在这里可能有用,但我不知道。

I believe Javascript could be useful here, but I don't know it.

推荐答案

尝试一下...

<script>function Hide()
{
    if(document.getElementById('mainselect').options[document.getElementById('mainselect').selectedIndex].value == "1")
    {
         document.getElementById('a').style.display = 'none';
         document.getElementById('b').style.display = '';
    }else
    {
         document.getElementById('a').style.display = '';
         document.getElementById('b').style.display = 'none'
    }
}
</script>
<td valign='top'><select id="mainselect" onchange="Hide()"><option value="1">1</option><option value="2">2</option></select></td>
<td valign='top' id='a'>{{ form.list1 }}</td>
<td valign='top' id='b'>{{ form.list2 }}</td>
<td valign='top'><input type="submit" value="Find" /></td>

这篇关于以Django形式动态显示和隐藏字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆