用戶在 TextBox 輸入後直接點擊 Button 提交,TextBox 的 LostFocus / TextChanged (AutoPostBack) 事件未觸發,導致後台依賴該事件的邏輯(如查詢單位 ID)失效。
ASP.NET WebForms 按鈕點擊提交表單 時,瀏覽器不會觸發輸入框的 blur 事件(焦點仍在輸入框),因此客戶端 onblur / 服務端 TextChanged 不執行。
Click 事件中,集中讀取所有輸入控件的 Text 屬性,執行業務邏輯(查詢 ID、驗證、轉換)。OnClientClick:<asp:Button ID="btnSubmit" runat="server" Text="提交"
OnClientClick="document.activeElement.blur();" />
提交前讓當前焦點元素失去焦點,觸發 onblur / TextChanged(若 AutoPostBack=true 則會先觸發一次回郵,體驗差)。UpdatePanel,AutoPostBack="true",OnTextChanged 執行查詢並更新隱藏字段/Label,Button 提交時讀取隱藏字段值。WebMethod + AJAX (jQuery .blur() / .change()) 異步調用,更新 UI,不依賴回郵。