首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

ASP.NET TextBox onblur 事件觸發 AJAX 驗證失效的解決

     編輯:程式設計綜合問答

問題

onblur="createXMLHttpRequest1() 無反應,AJAX 未發送。

原因

  1. ASP.NET 渲染後 ID 變為 ctl00$ContentPlaceHolder1$txtCarNum,JS `document.getElementById("txtCarNum")` 取不到。
  2. 原生 `XMLHttpRequest` 寫法繁瑣,易出錯 (緩存、編碼)。
  3. 回調未處理錯誤狀態碼。

修正 (jQuery 版)

<asp:TextBox ID="txtCarNum" runat="server" ClientIDMode="Static" onblur="checkCarNum()" />
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
function checkCarNum() {
    var val = $('#txtCarNum').val().trim();
    if (!val) return;
    $.get('TC_Registra.aspx', { CarNum: val, _: Date.now() }, function(data) {
        $('#mess_double').toggle(data === 'true');
    }).fail(function() { alert('驗證服務異常'); });
}
</script>

關鍵點

  • ClientIDMode="Static" 保證前端 ID 不變。
  • 用 jQuery `$.get` 簡化 AJAX,自動處理編碼/緩存 (加時間戳)。
  • 後端 `TC_Registra.aspx` 返回純文本 true/false。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved