提交for循环只触发一次

时间:2015-05-11 09:33:18

标签: jquery loops submit

我试图让.submit()在for循环的每次传递中运行,但它只运行一次。我做错了什么?

以下是代码:

$("#fancyConfirm_ok").click(function () {
    proceedAfterRestrictionCheckGuest();
    for (var rowNum = 0; rowNum < prodCode.length; ++rowNum) {
        var rProd = prodCode[rowNum];
        console.log(prodCode[rowNum]);
        var rPos = prodCarPos[rowNum];
        console.log(prodCarPos[rowNum]);
        $("#entryNumber").prop('value', rPos);
        $("#quantity").prop('value', 0);
        $('#updateRestrictionForm').submit();
    }
    $.fancybox.close();
});

由于

1 个答案:

答案 0 :(得分:0)

正如@Barmar指出的那样,当您调用$('#updateRestrictionForm').submit();时,表单上的默认提交操作将被触发,因此将提交表单,使页面重新加载并因此停止您的脚本。

正如jQuery文档指出的那样,“您可以通过在事件对象上调用.preventDefault()或从我们的处理程序返回false来取消提交操作”。您需要做的就是捕获提交事件并取消它在DOM中的传播(冒泡)。

类似的东西:

$( "#updateRestrictionForm" ).submit(function( event ) {
  alert( "Handler for .submit() called." );
  event.preventDefault();
});

请注意,我的答案的下划线概念不是特定于jQuery的。我只使用jQuery文档和代码,因为它知道你在代码中使用它似乎更容易。