【发布时间】:2011-01-28 20:22:08
【问题描述】:
我有一个以 ajaxed 模态显示的表单,我用它来更新用户详细信息。当模态加载时,我调用一个 js 函数:
teamCreate: function() {
$j("#step1,form#createEditTeam").show();
$j("#step2").hide();
var options = {
type: "get",
dataType: 'json',
beforeSubmit: before, // pre-submit callback
success: success // post-submit callback
};
$j("form#createEditTeam").ajaxForm(options);
function before(formData, jqForm, options){
var valid = $j("form#createEditTeam").valid();
if (valid === true) {
$j(".blockMsg").block({ message: $j('#panelLoader') });
return true; // submit the form
} else {
$j("form#createEditTeam").validate();
return false; // prevent form from submitting
}
};
function success(data){
if (data.status == "success") {
$j(".blockMsg").unblock();
} else {
//
}
};
function error(xhr, ajaxOptions, thrownError){
alert("Error code: " + xhr.statusText);
};
}
当我第一次提交表单时,这工作得很好,无论模式打开和关闭多少次。但是,如果我提交表单,然后再次打开模式并尝试再次提交表单,我会收到一个 js 错误:
h is undefined
【问题讨论】:
-
我在您的代码中没有看到
h...错误是否引用了文件和行号? -
h是 jQuery 库中设置的变量。 Firebug 报告的 jQuery 中导致问题的行是: (function(b){function s(c,a){var e=c==...etHack:4};var k=null,m=[] }})(jQuery);我假设h是 jQuery 分配的 DOM 对象,但我不知道为什么它没有被正确分配。
标签: javascript jquery ajax ajaxform