gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 07:36:37 25 4
gpt4 key购买 nike

我正在使用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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com