0

我正在使用表单验证 io 验证表单,如果在通过 ajax 提交之前克隆整个表单会发生什么情况,如果我在后面遇到错误,则使用按钮加载错误消息,如果单击再次加载表单,但是验证器一旦加载就无法记录工作。

如果有人可以帮助我,这是我的代码的一部分:

        $.on("success.form.fv", function(e){
                e.preventDefault();
                var $form= $(e.target);
                var modal= $form.children(".modal-body");
                var datos= $form.serialize();
                var modalClonado= modal.children(".row").clone();


                $.ajax({
                    success: function(data) {
                        if ("user" in data) {
                            modal.html(error+data.user+cerrarError);
                        } 
                    }
                });
                $form.on("click", "button", function(){
                    modal.html(modalClonado);   
                    $form.find("#submit")
                            .removeClass("disabled")
                            .prop("disabled", false);
                }); 
            });
4

1 回答 1

0

如果您从 DOM 中删除原始表单,然后将其替换为新表单,您将不会附加验证器。您必须在表单中添加另一个验证对象,以便在您尝试提交新表单时验证您的表单。

如果它没有通过验证,为什么你需要完全替换你的原始表单?允许用户编辑原件上的任何无效字段并允许他们重新提交表单会更容易吗?

编辑:

从验证中获得结果后,您可以e.preventDefault()在验证未通过时停止提交表单,并在必要时附加错误消息。这将使您的表单保持原样(无需离开页面或需要刷新页面),并且用户可以返回表单以编辑任何无效字段,然后尝试重新提交相同验证过程的表单再次发生。如果表单成功验证,您可以使用表单提交.submit()表单。$('#formToSubmit').submit(). 这样,您只需将验证器对象添加到原始表单一次,然后用户可以继续尝试提交表单,直到成功。

于 2016-04-05T01:01:11.403 回答