【问题标题】:Display a django-from from JS显示来自 JS 的 django-from
【发布时间】:2020-07-03 02:06:05
【问题描述】:

所以这是我有一个 html 代码块,当单击按钮时需要替换它。使用它没什么大不了的

$('div.myCustomReplacer').replaceWith(newHTML);

但我还需要在新 HTML 中呈现 django-form {{ form }} 当我简单地使用 <div class="NewDiv"> {{ form }} </div? html 被呈现为 "{{ form }}" 因为这些引号没有呈现表单。

那么我如何删除这些? 抱歉,刚接触 JavaScript。

【问题讨论】:

    标签: javascript django django-forms


    【解决方案1】:

    我不认为你可以那样实现它。记住,表单是在服务端渲染html时添加的,所以客户端基本上不存在{{form}}

    不用担心,只需使用简单的 JavaScript,就有几种简单的方法可以实现您的目标。一种方法是简单地让服务器注入表单,并在用户单击按钮时使其可见。看看我给你做的例子。

    document.getElementById('showBtn')
      .addEventListener('click', function () {
        document.getElementById('targetDiv').style.display = 'block';
      });
    
    document.getElementById('hideBtn')
      .addEventListener('click', function () {
        document.getElementById('targetDiv').style.display = 'none';
      });
    html, body {
        width: 100%;
        height: 100%;
        font-family: 'Roboto', sans-serif;
    }
    button {
        margin: 1rem;
    }
    section {
        margin: 1rem;
    }
    section span {
        background-color: lightcoral;
        font-size: small;
        padding: .5rem;
    }
    <!doctype html>
    <html lang="en">
      <head>
        <title>Hide Form</title>
        <link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
        <link href="./style.css" rel="stylesheet">
      </head>
      <body>
        <button id="showBtn">Show Form</button>
        <button id="hideBtn">Hide Form</button>
        <section>
          <div id="targetDiv" style="display: none;">
            <h2>Form <span> (a moment ago I was just hidden)</span></h2>
            <form>
                <label for="someInput">Bla bla</label>
                <input id="someInput" type="text"/>
            </form>
          </div>
        </section>
        <script src="./app.js"></script>
      </body>
    </html>

    【讨论】:

    • 感谢您的回答!它解决了我面临的其他问题....我正在使用 django-croppie 来裁剪图像,然后再上传它们。
      是我的cropper 被渲染的地方。所以当我点击按钮时,我只是用我的croppie 所需的div 替换我当前的html 内容。但我还必须在它之后呈现表单,{{ form.media }}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 2021-07-02
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多