多个表单生成的jquery不提交

Posted

技术标签:

【中文标题】多个表单生成的jquery不提交【英文标题】:multiple form generated jquery doesn't submit 【发布时间】:2020-10-04 23:12:12 【问题描述】:

我正在使用 Django 构建一个网站(类似电子商务)。

有时我会显示一个项目列表,每个项目都有一个带有提交按钮订单和数量选择器的表单。

我已经实现了过滤功能,可以删除我的项目列表的 html 代码并使用 jquery 匹配的项目重新构建它。

这个函数生成的新表单在提交按钮被点击时什么都不做

这是我在函数中使用的部分代码(我使用 ajax 调用来生成匹配项的 json,然后将它们显示在表格列表中):

$.each(code_json, function(index, value)
                var string = "<tr id="+ value.material +"><td>"+ value.manufNo +"</td><form method='POST' action='/add_to_cart/"+value.material+"/"+ value.node+"/language'><td><input type='submit' class='btn' value='Commander' style='color:blue;'></td><td><input id='qty' type='number' name='qty' class='form-control' value='1'></td></form></tr>";
                $("#header").after(string);
                );

我知道通常使用 Django 您必须为每个表单添加 % csrf_token %。但是,它通常在丢失时会抛出错误页面,并且这里不显示任何内容

编辑:我试图在动态创建的提交按钮上绑定一个 onclick 事件。 在此我在 jquery 中做了一个 $.post 来模拟表单的提交,但没有发生任何事情

$(document).on('click', '.btnStandard', function(event) 
        console.log($(this).attr('id'));
        $.post('/add_to_cart/'+$(this).attr('id'),
        
            qty: $("#qty"+$(this).attr('id')).val()
        ,function(data,status,xhr)
            alert("Data : "+data+", status: "+status+", xhr: "+xhr);
        );

它在控制台中打印 $(this).attr('id') 但它不做任何其他事情 谢谢你的帮助

【问题讨论】:

这能回答你的问题吗? Dynamic form not submitting (jQuery) 谢谢,但我不使用 javascript 提交...我只是使用表单标签中的操作字段。我不想让事情复杂化。 问题仍然是一样的 afaik。我很确定您必须为动态添加的表单、您想要或不想要的天气这样做。 好的,我明天试试,让你知道谢谢 不幸的是,它对我不起作用,通过阅读帖子,这不是 OP 用来解决他的问题的解决方案 【参考方案1】:

它没有解释为什么我会遇到这个问题,但我找到了解决我的问题的解决方法。

我不是动态生成表单,而是使用模板生成它们,然后将它们全部隐藏。后来,多亏了 css,我让我需要的东西在我需要的时候可见。

【讨论】:

以上是关于多个表单生成的jquery不提交的主要内容,如果未能解决你的问题,请参考以下文章

jQuery同一标签多个相同事件 return语句 表单提交实例

jQuery:表单提交 - 多个事件处理程序

循环生成的多个表单一键提交

如何使用 jQuery 提交多个表单数据?

Jquery AJAX提交多个FORM表单

使用 jQuery 验证验证和访问多个页面上的表单