【问题标题】:How can I prepopulate the remainder of forms based on user input from a first form?如何根据第一个表单的用户输入预填充其余表单?
【发布时间】:2014-08-12 05:38:13
【问题描述】:

所以我想做的是根据用户之前在页面中选择的内容显示一个表单列表。现在,在第一个表格中输入信息后,我想为其他表格提供重复该信息的选项。例如:

活动 1 名称 1 名称 2 电子邮件

活动 2 名称 1 名称 2 电子邮件

如果您报名参加许多活动,您会发现它是如何变得多余和乏味的。如果可能的话,我将如何在 django 中执行此操作,或者如果我需要,我将如何在 javascript 中执行此操作,甚至在 html5 中执行此操作。

【问题讨论】:

    标签: javascript django html django-forms


    【解决方案1】:

    你可以只用 HTML5 和 JavaScript 来做到这一点(我不知道 Django 是什么,但如果 Django 是一种可以访问表单数据的服务器端语言,这会更容易)。

    我会让第一个网页中<form> 元素的action 属性指向第二个网页,这样第二个网页就会具有该表单数据的 GET 参数,然后在第二个网页的 JavaScript 中,使用那些 GET 参数将数据放入表单中。这是一个例子:

    tester1.html:

    [...]
    <form action = "tester2.html">
      <input name = "realname" />
      <input name = "screenname" />
      <input type = "submit" />
    </form>
    [...]
    

    tester2.html:

    [...]
    <script>
    var form;
    window.onload = function() {
        var url = document.location.href;
        var keys = url.substring(url.indexOf("?")+1, url.length).split("&");
        form = document.getElementsByTagName("form")[0];
        for (var i = 0; i < keys.length; i++) form[keys[i].substring(0, keys[i].indexOf("="))].value = decodeURIComponent(keys[i].substring(keys[i].indexOf("=")+1, keys[i].length));
    };
    </script>
    [...]
    
    <form>
      <input name = "realname" />
      <input name = "screenname" />
      <input type = "password" name = "password" />
      <input type = "submit" />
    </form>
    [...]
    

    【讨论】:

    • 谢谢,如果有人想知道如何使用 django 执行此操作,只需将值作为 POST 发送,然后使用 request.POST.get() 请求它们,然后分配变量并将它们插入到下一个表单中。
    猜你喜欢
    • 2018-03-08
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 2021-07-27
    • 2013-05-23
    • 1970-01-01
    • 2010-09-22
    相关资源
    最近更新 更多