jquery - 为什么 JQuery Form SubmitHandler 不刷新其回调?

标签 jquery jquery-plugins jquery-validate jquery-forms-plugin

我正在使用JQuery Form PluginJQuery validation plugin和 jqTransform 插件。

我有一个隐藏的表单,我可以通过它来添加或编辑内容。编辑或添加操作会触发下一个函数调用。

function activateAddForm(formId,callback) {
    $('#'+formId).jqTransform().validate({
            submitHandler: function(form) {
                $(form).ajaxSubmit( {
                    dataType: "json", 
                    success: function(json) {
                        callback(json);
                    }
                });                 
            }
        }); 
}

每次调用都有不同的参数。对于添加,我用

来调用它
activateAddForm('add-new-form',addToy);

为了编辑,我称之为

activateAddForm('add-new-form',editToy);

这就是发生的事情:

  • 重新加载页面。
  • 编辑一个玩具。
  • 提交表单。
  • 调用 editToy 函数。
  • 尝试添加一些内容。
  • 使用 addToy 作为回调调用函数 activateAddForm,但一旦提交表单,就会调用 editToy 函数。

如果我在重新加载后做的第一件事就是添加一个玩具。然后addToy函数总是被调用。

我尝试添加:

function activateAddForm(formId,callback) {
    $('#'+formId).ajaxFormUnbind();
    ...
}

function activateAddForm(formId,callback) {
    $('#'+formId).resetForm();
    ...
}

但是它没有起作用。知道我能做什么吗?

解决方法试验

Activa 建议添加以下行:

$.removeData($('#'+formId)[0],'validator');

function activateAddForm(formId,callback) {
$('#'+formId).jqTransform();
$.removeData($('#'+formId)[0],'validator');
$('#'+formId).validate({
        submitHandler: function(form) {
            $(form).ajaxSubmit( {
                dataType: "json", 
                success: function(json) {
                    callback(json);
                }
            });                 
        }
    }); 
}

导致下一个:

  • 重新加载页面。
    • 编辑一个玩具。
    • 提交表单。
    • 调用 editToy 函数。
    • 尝试添加一些内容。
    • 调用表单 editToy 函数,然后调用 add 函数。

上述修复不起作用,但似乎方向正确。

还有更多想法吗?

最佳答案

我认为如果你只改变验证器的submitHandler而不是把它放在验证函数的参数中会简单得多。

$('#form').validate().settings.submitHandler = function () {
   // your function goes here.
}
$('#form').submit();

关于jquery - 为什么 JQuery Form SubmitHandler 不刷新其回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/946729/

相关文章:

jquery - 在父框架和子 iframe 之间拖放元素

javascript - 如何从 Javascript 同步运行 Ajax 函数?

javascript - Jquery XML 解析不适​​用于 IE

asp.net-mvc - 使用 jQuery 掩码时日期无法正确显示

jquery - 在运行时将submitHandler添加到jQuery validate()

javascript - 在 jquery 函数中引用 rails 图像

javascript - 与外部函数的回调函数

jquery - jQuery 数字动画插件中的动画冲突

php - jQuery 验证插件

javascript - 在用 html 填写表单时,如何为无效值制作自定义 css 代码?