文章編號: 873198 - 上次校閱: 2007年5月18日 - 版次: 2.6

如果在 Internet Explorer 中啟用 「 自動完成 」 功能,不可能會引發 TextBox 控制項) 的 TextChanged 事件

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

徵狀

當您啟用自動完成功能的表單在 Microsoft Internet Explorer 中並再從 [自動完成功能] 下拉式清單選取任何文字的 文字方塊] 控制項在 Web 應用程式的 [文字方塊] 控制項 TextChanged 事件清單不會啟動即使 TextBox 中的文字控制的變更。

發生的原因

Internet Explorer 無法觸發 TextChanged 事件的 TextBox 控制項,當您從下拉式清單中選取文字使用 「 自動完成 」 功能時,就會發生這個問題。

其他可行方案

若要解決這個問題,停用自動完成功能的 Web 表單。要這麼做,請您執行下列步驟:
  1. 在 [方案總管] 的 WebForm1.aspx 上, 按一下滑鼠右鍵,然後按一下 [檢視表設計工具]。
  2. 切換至 HTML 檢視的 WebForm1.aspx。
  3. 找出下列程式碼:
    <form id="Form1" method="post" runat="server">
  4. 取代您在步驟 3 以下列程式碼中找到的程式碼:
    <form id="Form1" method="post" runat="server" autocomplete="off">

狀況說明

這種行為是經過設計規劃的。

其他相關資訊

重現這個問題的步驟

啟用自動完成功能的表單

  1. 啟動 Internet Explorer。
  2. 在 [工具] 功能表上按一下 網際網路選項。[網際網路選項] 對話方塊隨即出現。
  3. 在 [內容] 索引標籤上按一下 [在 [個人資訊] 下的 [自動完成]。[自動完成] 功能設定] 對話方塊隨即出現。
  4. 使用自動完成],按一下以選取 [表單] 核取方塊,然後再按一下 [確定]
  5. 在 [網際網路選項] 對話方塊中,按一下 [確定]

建立包含一個文字方塊控制項的 Web 應用程式

  1. 啟動 Microsoft Visual Studio.NET。
  2. 在 [檔案] 功能表上指向 [新增],然後按一下 [專案]。出現 [新增專案] 對話方塊。
  3. 專案類型] 下按一下 [Visual C# 專案範本] 下按一下 [ASP.NET Web 應用程式、 在 [位置] 方塊中鍵入 http://localhost/MyTestApp 然後再按一下 [確定]
  4. 在 [方案總管] 的 WebForm1.aspx 上, 按一下滑鼠右鍵,然後按一下 [檢視表設計工具]。
  5. 按一下 [檢視] 功能表 工具箱
  6. 文字方塊 控制項加入至 Web 表單。依照預設值,會建立名為 [TextBox1 的 TextBox 控制項。
  7. TextBox1 TextBox 控制項的 [屬性] 視窗中請將 AutoPostBack 屬性設定為 True
  8. TextBox1 TextBox 控制項的 [屬性] 視窗中按一下 [事件],然後再連按兩下 TextChanged。WebForm1.aspx 檔案] 的 [程式碼] 檢視中新增 TextBox1_TextChanged 程序。
  9. 插入中斷點在 TextBox1_TextChanged 程序。
  10. 在 [檔案] 功能表上按一下 [另 儲存全部 儲存所有檔案新檔]。

建置和偵錯 Web 應用程式

  1. 在 [建置] 功能表上按一下 建置方案
  2. 在 [偵錯] 功能表上按一下 [開始]。WebForm1-Microsoft 網際網路總管 出現的網頁。
  3. 在 [文字方塊] 中鍵入 text1,並按下 ENTER。您注意到偵錯工具停駐點 TextBox1_TextChanged 程序的 WebForm1.aspx 檔案] 的 [程式碼] 檢視中。
  4. 偵錯] 功能表上按一下 [繼續]。
  5. WebForm1-Microsoft Internet Explorer Web 網頁上的 [文字方塊] 中鍵入 text2,並按下 ENTER。您注意到偵錯工具在 TextBox1_TextChanged 程序的 WebForm1.aspx 檔案] 的 [程式碼] 檢視中再次停止。
  6. 偵錯] 功能表上按一下 [繼續]。
  7. WebForm1-Microsoft Internet Explorer Web 網頁上文字方塊,輸入 [t]。您注意到下拉式清單中,您稍早所輸入的字詞。
  8. 使用向下箭頭鍵選取 text1,並按下 ENTER。

    您會看到 TextBox1 TextBox 控制項) 的 TextChanged 事件不會啟動。

?考

如需詳細資訊請造訪下列 Microsoft 開發人員網路 (MSDN) 網站:
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.autopostback(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.autopostback(vs.71).aspx)

這篇文章中的資訊適用於:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
關鍵字:?
kbmt kbprb kbcontrol kbproperties kbwebforms kbtshoot KB873198 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:873198? (http://support.microsoft.com/kb/873198/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。