-1

我有一个使用 formvalidation.io 类的表单。我有一个 if 语句,说明该字段是否有效,使用 jQuery 帖子提交数据并将数据添加到表格中。由于某种原因,它提交了两次。如果我删除 $.post 并在 if 语句下添加数据,则 prepend 只会执行一次。我在函数的开头有 e.preventDefault() 。这似乎是其他论坛上唯一的解决方案。任何帮助表示赞赏:

           barcode: {
            onSuccess: function(e, data) {
                e.preventDefault();
                setTimeout(function() {
                    if (!$('#move_bin').data('formValidation').isValidField('bin')) {
                        $("#barcode").val("");
                        $('#move_bin').data('formValidation').updateStatus('barcode', 'NOT_VALIDATED');
                        $('#move_bin').data('formValidation').updateStatus('bin', 'INVALID');
                    } else {
                            setTimeout(function() {
                                if ($('#move_bin').data('formValidation').isValidField('barcode')) {
                                    $.post( "/?a=scantobin", { bin: $("#bin").val(), barcode: $("#barcode").val() }, function( data ) {
                                      if(data.valid == true){
                                        $("#bin_info tbody").prepend("<tr><td>" + $("#bin").val() + "</td><td>" + $("#barcode").val() + "</td></tr>");
                                        $('#move_bin').data('formValidation').resetField('barcode', true);
                                        $("#barcode").focus();  
                                      } else {
                                        alert("Internal Error");  
                                      }
                                    }, "json");
                                }
                            }, 750);
                    }
                }, 500);
            },
4

2 回答 2

0

您的代码没有任何问题,可能是您在项目中的某个地方调用了该函数两次。

于 2015-08-21T22:28:19.053 回答
0

http://formvalidation.io/examples/form-submit-twice/

这帮助了我。我必须将代码放在表单级别而不是表单验证的字段级别中。

于 2015-08-22T00:54:18.823 回答