首页 > 解决方案 > 动态 Javascript 表单输入未发布

问题描述

我正在使用 python-flask 框架开发一个 Web 应用程序。

我遇到的一个问题是用户可以创建新输入字段的表单。表单出现在 HTML 代码中,并在浏览器中直观地出现,但是动态创建的元素不会出现在 POST 请求中。

下面是两个 javascript 函数,第一个在用户按下相应按钮时创建表单元素。我在网上找到的第二个代码,因为它说序列化会将动态表单元素添加到 POST 请求中。

$(function create_new_row_plus_button_fn() {
$("#addRows").click(function () {
            counter = counter + "a";
            var trelem = document.createElement('tr');
            var tdelem = document.createElement('td');
            trelem.appendChild(tdelem);
            var frm = document.getElementById("new_table_id");
            var newEl = document.createElement("input");
            newEl.name = counter;
            newEl.type = "text";
            tdelem.appendChild(newEl);
            frm.appendChild(trelem);
    });
})

$('#form_container').on('submit', function(e) {
    //prevent the default submithandling
    e.preventDefault();
    //send the data of 'this' (the matched form) to yourURL
    $.post('/add_new_product', $(this).serialize());
    location.reload();
});

我注意到的一件事是,如果我从 chrome 调试器查看 html,动态表单元素是可见的,但如果我查看页面源代码,则它们不是。

标签: javascriptflask

解决方案


问题发生在 . 移动外部解决了这个问题。


推荐阅读