我正在使用JQuery Form Plugin、JQuery 验证插件和 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 函数。
上述修复不起作用,但似乎方向正确。
还有什么想法吗?