【问题标题】:Flask - Dynamically add a Form sectionFlask - 动态添加表单部分
【发布时间】:2018-09-05 06:43:15
【问题描述】:

我正在尝试找出 html 中的多表单输入,like here

下面是我的问题:

当我点击“再添加一个部分”时,我希望有与新部分相同的网络表单输入。请帮帮我。

谢谢。

我正在使用 Flask-html

<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<!------ Include the above in your HEAD tag ---------->

<div class="container">
    <div class="row">
      <form role="form">
        <div class="form-group col-xs-10 col-sm-4 col-md-4 col-lg-2">
            <label for="JIRA">JIRA ticket</label>
            <input type="text" class="form-control" id="JIRA" placeholder="JIRA ticket">
        </div>
        <div class="form-group col-xs-8 col-sm-2 col-md-2 col-lg-3">
            <label for="Assignee">Assignee</label>
            <input type="text" class="form-control" id="Assignee" placeholder="Assignee">
        </div>
        <div class="clearfix"></div>
        <div class="form-group col-xs-10 col-sm-4 col-md-4 col-lg-7">
            <label for="Issue">Issue</label>
            <input type="text" class="form-control" id="Issue" placeholder="Issue">
        </div>
        <div class="form-group col-xs-10 col-sm-4 col-md-4 col-lg-9">
            <label for="Description">Description</label>
            <textarea name="Description" rows="5" class="form-control" placeholder="Description" required></textarea>
        </div>
           <div class="form-group col-xs-10 col-sm-4 col-md-4 col-lg-4">
            <label for="Comments">Comments</label>
            <textarea name="Comments" rows="4" class="form-control" placeholder="Comments" required></textarea>
        </div>
             <div class="form-group col-xs-8 col-sm-2 col-md-2 col-lg-3">
            <label for="Status">Status</label>
            <input type="text" class="form-control" id="Status" placeholder="In-progress or Resolved">
        </div>
        <div class="form-group">
            <div class="col-xs-offset-3 col-xs-9">
                <input type="submit" class="btn btn-primary" value="Submit"/>
                <input type="reset" class="btn btn-default" value="Reset"/>
                <input type="button" class="btn btn-default" value="Add one more section"/>
            </div>
    </form>
    <div class="clearfix"></div>

    <br /><br />
    </div>
</div>

【问题讨论】:

    标签: flask webforms forms flask-wtforms


    【解决方案1】:

    您需要在 .js 文件中实现一些 AJAX。当您单击添加按钮时,另一个表单将附加到现有表单上。

    function addsectionFunction() {
    var csrftoken = $('meta[name=csrf-token]').attr('content')
    
    $.ajaxSetup({
        beforeSend: function(xhr, settings) {
            if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
                xhr.setRequestHeader("X-CSRFToken", csrftoken)
            }
        }
    })
    
    $.ajax({
        url: '/add-section',
        data: JSON.stringify(data),
        method: 'POST',
        contentType: 'application/json',
        success: function(data) {
            $('#the-formdiv-id').append(data);
        }
    });
    };
    

    添加部分 HTML 按钮。
    &lt;button onClick="addsectionFunction();"&gt;Add One More Section&lt;/button&gt;

    '/add-section' 视图可能类似于:

    @app.route('/add-section', methods=['GET', 'POST')
    def add_section():
        return render_template('new-section.html')
    

    【讨论】:

    • 您好 Roy,感谢您对此请求的意见。正如您所提到的,我已经通过使用 jquery 创建动态文本框来实现我的要求。但是现在,我无法将动态文本框的输入重定向到另一个 html 页面。你能帮我解决这个问题吗?
    • 我不明白。
    • 嗨 Roy,目前的问题是无法将表单输入重定向到另一个 HTML 页面。但是,我想出将输入重定向到另一个 HTML 页面,但能够获取第一行输入的值,而不是动态创建的输入值
    猜你喜欢
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2020-01-18
    • 2011-12-10
    • 2021-01-09
    • 2015-07-29
    • 2016-11-17
    • 1970-01-01
    相关资源
    最近更新 更多