我已經繼承了一些我需要調試的代碼。目前沒有工作。我的任務是讓它工作。沒有其他要求給我。不,這不是家庭作業,這是一個維護噩夢的工作。ajax提交和其他代碼。有人能幫我確定這個代碼在做什麼嗎?
ASP.Net(Framework 3.5),C#,jQuery 1.4.2。這個項目大量使用jQuery和AJAX。在頁面上有一個下拉菜單,當選擇一個項目時,應該將該項目(它是一個用戶)添加到數據庫中的一個對象。
爲了實現這一點,以前的程序員首先在頁面加載時通過AJAX動態加載整個頁面。要做到這一點,他有5個div,每個從jQuery調用加載到網站中的不同完整頁面。
不知何故,HTML和BODY以及所有其他東西都被剝離出來,div的內容加載了aspx頁面的內容。這對我來說似乎非常錯誤,因爲它依賴於瀏覽器來魔術般地去除HTML,頭部,身體,表單標籤並與現有的HTML頭部身體表單標籤合併。
此外,作爲「內容」頁面返回一個字符串,以前的程序員有這種代碼在其上運行之前,它被添加到div:
function CleanupResponseText(responseText, uniqueName) {
responseText = responseText.replace("theForm.submit();", "SubmitSubForm(theForm, $(theForm).parent());");
responseText = responseText.replace(new RegExp("theForm", "g"), uniqueName);
responseText = responseText.replace(new RegExp("doPostBack", "g"), "doPostBack" + uniqueName);
return responseText;
}
當自身觸發下拉它的onchange事件,這裏是被炒魷魚代碼:
function SubmitSubForm(form, container) {
//ShowLoading(container);
$(form).ajaxSubmit({
url: $(form).attr("action"),
success: function(responseText) {
$(container).html(CleanupResponseText(responseText, form.id));
$("form", container).css("margin-top", "0").css("padding-top", "0");
//HideLoading(container);
}
}
);
}
這在IE炸燬,與該消息「Microsoft JScript運行時錯誤:對象不支持此屬性或方法」 - 這,我想,有是$(form).ajaxSubmit方法不存在。
這段代碼真的要做什麼?我現在很轉身,我認爲我唯一的選擇就是取消一切並重新開始。但我寧願不這樣做,除非必要。
這段代碼好嗎?它對.Net是否有效?這就是爲什麼我們遇到問題?
好的建議。是的,它包含在內,不,它在Firefox中也不起作用。 Firefox中的錯誤是「$(form).ajaxSubmit不是函數」。我甚至剛剛下載了最新版本的腳本,以確保前面的人沒有改變它或任何東西。 – 2010-04-22 19:04:26