2010-01-04 50 views
1

我有這個功能正確在外部.js文件鏈接...簡單的JavaScript問題,在IE中返回NULL,但在FireFox中工作!

function SubmitAge(age, UpdatePanelID, HiddenAgeID) { 
    $get(HiddenAgeID).value = age; 
    __doPostBack(UpdatePanelID); 
} 

和我打電話像這樣從一個onClick的a href="#" ... html標籤的

(標籤去除,請向右滾動的計算器在顯示簡單的內容,第七顯示相關編輯的最大困難,感謝計算器)

a href="#" onclick="SubmitAge(24, 'ctl00_MainContent_arFrom_upAgeRange', 'MainContent_arFrom_HiddenAge')" runat="server" 24 /a 

然而,我得到這個錯誤,它正在呼籲SubmitAge函數的第一行(符合$得到(HiddenAgeID)...等...)

Error: 
Microsoft JScript runtime error: 'null' is null or not an object 

我已經複製並粘貼在Visual Studio .NET我的收藏窗口(VS2010 Beta 2中使用vb.net & C#),而德SubmitAge的.js函數中執行休息...

age 53 Number 
    UpdatePanelID "ctl00_MainContent_arTo_upAgeRange" String 
    HiddenAgeID Undefined identifier Error 

爲什麼地球上是HiddenAgeId,明確傳遞就像UpdatePanelID ,正在返回「未定義標識符錯誤」?它讓我感到困惑,因爲我沒有空間可以移動!我錯過了什麼傢伙?謝謝 - 你的幫助或指針非常感謝。

編輯:更新:原來它完美的作品(如它應該)當我在FireFox加載它,但在Internet Explorer所產生的誤差,這不是一個瀏覽器的兼容性問題,應該在工作IE,但它不!

+0

您應該編輯您的問題標題更具描述性的,如「在簡單的Ajax調用ASP.net奇怪的空相關的錯誤」。順便說一句,這是一個很好的和有趣的問題,但不正是我預計在一個「簡單」的問題,看看;) – 2010-01-04 00:49:56

+0

當然,它看起來像它不應該從給定的代碼發生。但是之前的版本並不完全匹配給出的HTML示例,所以誰知道呢。我們可以有例如。有錯誤的測試頁面?順便說一句,你應該'從你的點擊處理程序返回FALSE'停止鏈接被跟蹤(和彈跳頁面頂端由於''#)。 – bobince 2010-01-04 02:11:17

+1

你以前的意思是什麼? onclick會正確地向SubmitAge函數發送3個參數,正確使用它們全部。它在Firefox中工作沒有問題:) – 2010-01-04 05:44:06

回答

0

到目前爲止,我已經確定這是在Internet Explorer中的錯誤,果然不是預期的行爲,並不能在任何情況下是由設計,和我幾乎可以肯定這是一個錯誤。我已經嘗試了從重新安排js函數參數到添加虛擬參數,並重新啓動Internet Explorer,Visual Studio和計算機幾次,但沒有運氣。

因此,我決定將整個函數內容直接放到onclick =「(代碼行」事件屬性中,這意味着對於我網站上的每一個頁面,代碼的所有功能行將不得不重新打印110次(對於用戶來說,下載量爲20到30 KB)......這是暫時的,直到我有時間找到更好的解決方案。

沒有人知道,如果我們能夠給出正確的部門的錯誤報告團隊的鏈接或指向這個線程,使他們至少可以調查和解決這個問題,對產品的改善?我不完全確定它是否是vs或ie問題,但我認爲他們都會擔心這一點。如果需要,我願意提供問題複製幫助。感謝大家給你的幫助。

+0

地球上無論如何都會downvote呢?它實際上是一個測試版2錯誤! – 2010-01-21 07:05:13

0

這是怎麼方法被調用?有可能你錯誤​​地只用兩個參數調用方法(javascript允許這樣做,而第三個參數在方法體內是未定義的)。或者你可能真的在傳遞一個未定義的值,而沒有意識到它。

啊剛纔編輯的問題。在這種情況下,請檢查$ get(HiddenAgeID)返回的內容,它可能返回null,因爲它找不到它。

+0

方法調用也顯示在問題中,這裏是它的數字,字符串,字符串...:SubmitAge(24,'ctl00_MainContent_arFrom_upAgeRange','MainContent_arFrom_HiddenAge'); – 2010-01-04 00:37:59

+0

你是否在不同的瀏覽器中試過這個?例如,如果這在IE中失敗,但在Firefox中起作用,那可能是很好的信息。 – 2010-01-04 00:39:22

+1

感謝,會嘗試現在 – 2010-01-04 00:40:53

0

考慮到由於命名容器而導致的任何可能的ID消減,是MainContent_arFrom_HiddenAge客戶端上HiddenAgeID的正確ID?在的UpdatePanel的ID

來看,是HiddenAge的ID應該是ctl00_MainContent_arFrom_HiddenAge

+1

有趣的是,在服務器端使用upUpdatePanel.ClientID.ToString和hfHiddenAge.ClientID.ToString生成ids,所以它們是正確的,我也在打印的源文件中雙重檢查了這個 – 2010-01-04 00:42:45

+1

HiddenAgeID只是一個字符串參數來傳遞隱藏字段,這是即名「MainContent_arFrom_HiddenAge」 我會盡量讓你知道誰 – 2010-01-04 00:48:57

相關問題