jquery:在网站上提交几个相同的表单之一

jquery:在网站上提交几个相同的表单之一,jquery,html,forms,Jquery,Html,Forms,我的网站上有几个相同的表单,提交其中一个会引起一些奇怪的问题。以下是我的设置: 我在我的网站上有一个id为“#modelform”的表单。提交#modelform时,会出现第二个表单,其类标识符为“.waldform”#modelform可以多次提交,允许我的站点上存在多个相同的.waldform。提交.waldform调用python函数,并将返回的值附加到网站正文中 问题如下:假设我提交了两次#modelform,而我的站点上有2个.waldforms。提交要创建的第一个.waldform将

我的网站上有几个相同的表单,提交其中一个会引起一些奇怪的问题。以下是我的设置:

我在我的网站上有一个id为“#modelform”的表单。提交#modelform时,会出现第二个表单,其类标识符为“.waldform”#modelform可以多次提交,允许我的站点上存在多个相同的.waldform。提交.waldform调用python函数,并将返回的值附加到网站正文中

问题如下:假设我提交了两次#modelform,而我的站点上有2个.waldforms。提交要创建的第一个.waldform将其返回值附加到我的站点正文两次。将第二个.waldform提交到只会将其返回值附加到正文一次。类似地,如果有3.waldforms,第一个.waldform将附加其值3次,第二个.waldform将附加其值两次,第三个仅附加一次

我希望每个.waldform只附加其值一次,而不管站点上存在多少值

有什么想法吗

以下是我的jquery:

var $counter = 0

$("#modelform").submit(function() {

    $counter++;

    $('body').append($counter) ;

    //MODEL FORM
    $.post('/estimate', {name: $("#mymodel").val()}, function(data) {

        var $a_var = data['title']
        var $element = $('<div class="item">' + $a_var + '</div><br>');

        $('body').append($element) ;




        //WALD FORM
        $('body').append('<form class="waldform" action="#" method="post"><input type="text" id="waldnum" value="' + $counter + '"/><input type="submit" value="Wald Test" /></form>');

        $(".waldform").submit(function() {

        //post the form values via AJAX...
        $.post('/wald', {name: $(this).find('#waldnum').val()}, function(data) {

            var $a_var = data['title']
            var $element = $('<div class="item">' + $a_var + '</div><br>');

            $('body').append($element);



            });

            return false ;
        });



    });

    return false ;
});
var$counter=0
$(“#modelform”).submit(函数(){
$counter++;
$('body')。追加($counter);
//模型形式
$.post('/estimate',{name:$(“#mymodel”).val()},函数(数据){
var$a_var=data['title']
var$element=$(''+$a_var+'
'); $('body')。追加($element); //瓦尔德形式 $('body')。追加(''); $(“.waldform”).submit(函数(){ //通过AJAX发布表单值。。。 $.post('/wald',{name:$(this).find('#waldnum').val()},函数(数据){ var$a_var=data['title'] var$element=$(''+$a_var+'
'); $('body')。追加($element); }); 返回false; }); }); 返回false; });
在提交modelform时调用的函数中,可以附加一个类waldform的表单,然后向整个类附加一个提交处理程序。因此,您提交modelform,生成一个waldform并提交给第一个waldform。然后提交modelform,生成第二个waldform,并将提交事件附加到整个类,这样第一个wald现在有2个,第二个有1个,依此类推。因此,在附加新表单之后,在附加submit事件之前,使用

$('.waldform').off();
应该能解决你的问题

您可能需要查看unbind()和off()上的文档

另一种方法是创建一个新的dom元素,将submit绑定到该元素,然后将其附加到body,而不是绑定到整个类