gpt4 book ai didi

javascript - 我应该如何在 Django 表单中实现条件逻辑?

转载 作者:行者123 更新时间:2023-12-01 03:35:41 25 4
gpt4 key购买 nike

我正在尝试在 Django 模型表单中添加一些条件逻辑,这比我预期的要困难得多。我想要做的是:如果用户选择选项 A,我希望再显示一个问题,如果他们选择选项 B,我希望显示另一个问题。

我找到了this answer -- 这正是我想要的,它说首先创建具有可选值(即不需要)的字段,然后根据逻辑使用 Javascript 隐藏字段。但它没有解释如何实现。

我想我可以弄清楚 JS 位,但我想了解的是如何以及在哪里添加它。我假设在 forms.py 中,也许在小部件属性中?如果可能的话,我希望有一个实现示例。预先非常感谢!

最佳答案

正如您已经提到的,执行您想要的操作的最简单方法是创建一个包含所有字段(必填和可选)的表单,并使其中一些字段不可见,直到您希望它们出现(通过选择某些选项)以其他领域为例)。为此,您应该:

  1. 创建一个表单,其中包含 forms.py 中所需的所有字段。

    Class MyForm(forms.Form):
    #fields go here
  2. 将表单传递到所需的模板。

    def myview(request):
    form = MyForm()
    c = {'form': form}
    return render(request, 'mytemplate.html', c)
  3. 在模板中呈现表单。

    <form action="/your-name/" method="post">
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="Submit" />
    </form>
  4. 现在所有的魔法都在 .js 文件中。它可能应该位于 /static/js/ 文件夹中,并且可以根据您的意愿命名。选择要通过 id 使其不可见的字段(jQuery 将使以其他方式(例如通过类)选择字段变得更容易)并使用 .hide() 方法隐藏它们。或者,您可能希望通过将 visibility 设置为 hidden 来隐藏 css 中的必要字段。最后,您唯一应该做的就是在 .js 文件中编写一个条件来检查是否选中了某些必填字段或选择了哪些选项,并使用 .show() 方法显示一些可选的隐藏字段。想象一下,您有一个 id="mycheckbox"的复选框:

    <script type="text/javascript">
    if (document.getElementById('mycheckbox').checked) {
    document.getElementById('someotherfield').show();
    }
    </script>

当然,还有其他方法来制作动态表单。

关于javascript - 我应该如何在 Django 表单中实现条件逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35580916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com