【发布时间】:2009-06-03 19:38:11
【问题描述】:
我正在使用JQuery Form Plugin、JQuery 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 函数。
- 尝试添加一些东西。
- 函数 activateAddForm 以 addToy 作为回调调用,但一旦提交表单,就会调用 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 函数。
上述修复不起作用,但似乎方向正确。
还有什么想法吗?
【问题讨论】:
-
您介意添加一个指向工作演示页面的链接,以便我们可以看到您的所有代码、插件等协同工作吗?
标签: jquery jquery-plugins jquery-validate jquery-forms-plugin