2008-09-29 50 views
1

我有一箇舊網站的代碼,需要修改。有兩個頁面我修改了一些表單代碼。我修改了一個文本框的最大長度,並在函數中稍微修改了一行或兩行代碼。 「btnSubmit_Click」函數發生。「提交」按鈕在Firefox 3中可用,但在IE7(ASP 1.1)中不可用

隨着新的代碼在網絡服務器上被FTP連接,當我點擊使用Firefox 3的「提交」按鈕時,按鈕就會執行它應該做的事情。使用IE7,沒有任何反應。沒有頁面加載,不刷新,沒有錯誤,沒有任何東西。 IE不忙,它沒有超時,它確實是nada。

然而,在我的開發筆記本電腦上,當我運行該項目時,提交按鈕在IE7中工作,因爲它應該這樣做。

有什麼想法?

對Mecki的迴應: 這是method = POST,但它是一個JavaScript回發的東西好吧。還我檢查了輸出HTML和提交按鈕具有JS 「點擊」 事件:
的onclick = 「如果(typeof運算(Page_ClientValidate)== '功能')Page_ClientValidate();」

絕對雖然所有必需的字段有他們需要的東西。當我通過忽略來自必填字段的信息進行測試時,驗證也起作用IE7要求我填寫數據。奇怪的一個。

回答

0

提交按鈕是否真的提交表單(發送郵件/獲取)還是調用JavaScript代碼來執行檢查或其他操作?如果是這樣,我的第一個猜測是一些JS錯誤發生。你應該看看JS控制檯? (如果IE有一個,而不是自己使用IE,根據this MS page,它有一個,你只需要啓用它)。

3

我剛剛看到將ASP站點移植到ASP.NET時完全相同的問題。我的表單在Firefox,Safari,Chrome中提交得很好 - 但在IE或Opera中完全沒有。就像你的形式一樣,它沒有做任何事情,不會拋出任何錯誤等 - 它只是坐在那裏無所事事。與您的表單不同,這是一個普通的舊回發 - 它不使用任何客戶端來觸發表單提交,也沒有客戶端驗證等。

如果我將onclick處理程序附加到提交按鈕,我可以看到該按鈕被點擊 - 但如果我附上一個onsubmit處理程序的形式,我什麼都沒有。如果我讓按鈕onclick處理程序通過JavaScript提交表單,它會正常工作 - 這只是直接提交不起作用。

在我的頭撞在桌子上一陣子之後,我意識到網頁上還有另外一種形式 - 在這種情況下,它是由一個單獨的課程中的一個功能創建的,因此看不見並且不在意。在ASP中,沒有問題 - 兩種形式是分開的。當然,ASP.NET已經以自己的形式封裝了頁面,HTML不允許嵌套窗體。我刪除了與之合作的主窗體上的表單標籤,但我忽略了第二種形式,因爲它在頁面上的其他地方以及代碼中的其他地方。所以IE和Opera忽略了嵌套的形式(正確,我假設),但Firefox等人更寬容並允許表單提交。

這是一個典型的錯誤示例,從頭開始編寫代碼時不會出現這種錯誤,但當移植大量代碼時很容易造成這種情況,其中很久以前寫入的某些副作用無法立即顯示您正在處理的代碼。

這可能會也可能不會與您的問題有關,但它可能會幫助遇到類似問題的其他人遇到此問題並尋找可能的答案。

+0

我以前真的發生過這種事,我已經忘記了。不幸的是,只是簡單地看了一下令我惱火的代碼,並且基本驗證了它。我必須仔細檢查,因爲你的解決方案感覺很好! – 2008-10-03 22:11:24

4

這個問題並不完整,我忽略了一個事後回顧非常重要的細節:我也將這個網站從一個主機移動到另一個主機。

這個問題似乎是驗證JavaScript代碼的不同版本。我通過將IIS的根目錄下的aspnet_client \ systemweb \ 1_1_4322 \ *。*目錄複製到網站的根目錄來解決此問題。我轉移的網站已經在這個目錄中有代碼,並且它必須是與新服務器上運行的ASP不同的Build版本。

道歉Mecki,如果我對JavaScript有什麼好處,我會說你的回答會讓我走向正確的方向。 西蒙,它正在調查你的想法,我注意到JavaScript包括aspnet_client。當天結束的時候,這個問題通過反覆試驗解決了,所以我不知道是什麼導致了我的問題。感謝您的幫助。

2

從頁面移除多個<form>標籤。
asp.NET只允許一個<form>標籤進入頁面。

相關問題