前端標記寫法
<!-- 方式一:滑鼠移入自動聚焦並全選 -->
<asp:TextBox runat="server" onMouseOver="this.focus(); this.select();">預設文字</asp:TextBox>
<!-- 方式二:分離事件,語意更清晰 -->
<asp:TextBox runat="server" onMouseOver="this.focus()" onFocus="this.select()">預設文字</asp:TextBox>
後端程式碼動態綁定
// Page_Load 或其他適當位置
this.txtBox1.Attributes.Add("onMouseOver", "this.focus(); this.select();");
// 或僅在取得焦點時全選
this.txtBox1.Attributes.Add("onfocus", "this.select();");
程式碼控制焦點與全選
// 讓 TextBox 取得焦點
this.txtBox1.Focus();
// 確保焦點時自動全選 (需配合前端 onfocus)
this.txtBox1.Attributes.Add("onfocus", "this.select();");
適用場景
- 搜尋框、輸入框預設提示文字,使用者點擊即可直接輸入覆蓋
- 表單驗證失敗時,將焦點設定到錯誤欄位並全選方便修正
- GridView 編輯模板中預設值快速替換
注意事項
onMouseOver 會在滑鼠經過時搶奪焦點,可能干擾鍵盤導航,建議改用 onFocus 單獨處理全選
- 行動裝置無滑鼠移入事件,務必以
onFocus 為主
- 若 TextBox 設為
ReadOnly="true",select() 仍可運作但無法編輯