1

我完全坚持这个。我真的不知道该怎么做,所以如果有人愿意帮助我,请举一些例子或指出一些非常有用的方向。

这是这种情况:

我有一个模态(eric martins simplemodal)窗口,其中生成了一些带有一些 JSON 详细信息的表单。这是通过以下代码完成的:

         $.each(data.product.variants, function(index, variant){     

          contentHtml = contentHtml +
            '<div id="form">' +
            '<form class="formProduct" id="formProduct'+variant.id+'" action="#" >' +
            '<div class="variants">' +
            '<div class="pop_variantTitle"><label><input type="hidden" id="variantId" name="'+ variant.id + '" value="' + variant.id + '" />' + variant.title + '</label></div>' +
            '<div class="pop_variantQuantity"><label">{{ 'Quantity' | t }}: <input type="text" name="quantity" id="formProductQuantity" value="1" /></label></div>' +
            '<div class="pop_variantAdd"><a class="button green submit" href="#"><span>{{ 'Add to cart' | t }}</span></a></div>' + //
            '</div>' +
            '</form>' +
            '</div>';
         });     
        $('.formProductContent').html(contentHtml);
      });         
    }})
  return false;
  })

  $().ready(function(){

var form = $('form').attr('id');

$(form).submit(function() { return false; });

$(".submit").live("click", function(){

var quantity = $("#formProductQuantity").val();
var variant = $("#variantId").val();

$(".submit").replaceWith("send...");

$.ajax({
type: 'POST',
url: '{{ 'cart/add/' }}'+variant+'/?quantity='+quantity+'',
data: $(form).serialize(), //"formProduct"
success: function(data) {
/*if(data == "true") {
$(form).fadeOut("fast", function(){
$(this).before("<p><strong>Success! Your feedback has been sent, thanks :)</strong></p>");
setTimeout("$.fancybox.close()", 1000);
});
}*/
 }
});
});
});

脚本本身运行良好。我知道要提交这些表单,我必须使用唯一的 ID 或唯一的提交按钮。我尝试了各种事情,但我只能提交第一个表格。任何人都可以帮助我提供一些指导或示例或一切可以帮助我的东西;)

4

1 回答 1

1

改变

$(".submit").live("click", function(){
    //code
}

$(".submit").each(function(){
    $(this).live("click", function(){
        //code
    }
});

.class 选择器返回所有类,但您需要处理它们。对于您的代码,它仅适用于找到的第一个 .class。

于 2012-08-09T12:51:30.177 回答