ASP.NET 服務器控件渲染後的 HTML id 可能被命名容器改寫(如 ctl00_ContentPlaceHolder1_txtName),導致 JS 直接 document.getElementById("txtName") 失敗。
ClientID 屬性服務器端控件暴露 ClientID,即實際渲染的客戶端 ID。
<script>
var txtName = document.getElementById('<%= txtName.ClientID %>');
</script>
var $txtName = $('#<%= txtName.ClientID %>');
$txtName.val('新值').css('border', '1px solid red');
CssClass="js-txt-name",JS 用 $('.js-txt-name')。<asp:TextBox data-role="username" />,JS 用 $('[data-role="username"]')。window.txtNameId = '<%= txtName.ClientID %>';,外部 JS 直接用變量。ClientIDMode="Predictable" 或 Static,減少不可預測 ID。