ajax盡態驗證

本文介绍了一个使用Ajax技术实现实时表单验证的例子。通过客户端JavaScript调用服务器端的方法,实现对输入日期的有效性检查,并即时反馈结果给用户。此方法提高了用户体验并减少了不必要的服务器负载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

test.aspx

===================================================================

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="NewsAdd" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
<html>
  <head>
    <title>Using Ajax for validation</title>
    <script type="text/javascript">
        var xmlHttp;
        function createXMLHttpRequest()
        {
            if (window.ActiveXObject)
            {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if (window.XMLHttpRequest)
            {
                xmlHttp = new XMLHttpRequest();
            }

        }
        function validate()
        {
            createXMLHttpRequest();
            var date = document.getElementById("birthDate");
            var url = "getdata.aspx?id=" + escape(date.value);
            xmlHttp.open("GET", url, true);
            xmlHttp.onreadystatechange = callback;
            xmlHttp.send(null);
     
                }
        function callback()
        {
            if (xmlHttp.readyState == 4)
            {
          
         
                if (xmlHttp.status == 200)
                {

                     var messageArea = document.getElementById("dateMessage");
                     messageArea.innerHTML=xmlHttp.responseText;
                    setMessage(mes, val);
                }
            }
        }
        function setMessage(message, isValid)
        {
            var messageArea = document.getElementById("dateMessage");
            var fontColor = "red";
            if (isValid == "true")
            {
                fontColor = "green";
            }
            messageArea.innerHTML = "<font color=" + fontColor + ">" + message + " </font>";

        }
        function show()
        {
           var m = document.getElementById("dateMessage");
        alert(m.innerText);
        }
    </script>
  </head>
  <body>
    <h1>Ajax Validation Example</h1>
    Birth date: <input type="text" size="10" id="birthDate" onchange="validate();"/><label id="dateMessage" style="font-size:x-small"></label>
  

  </body>

</html>
 

dataRows.forEach(function (row, index) { // Construct the details for sys_DireInfoDetail dynamically var directiveDetails = headers.map((header, colIndex) => ({ XMC: header.trim(), // Use the header as the item name (XMC) XNR: row[colIndex] || ‘’ // Use the corresponding cell value as the content (XNR) })); // Make an AJAX call for each row and add the promise to the array var promise = $.post('/Ajax/AjaxService.aspx', { op: 'AddDireInfo', // Adjust to your new API endpoint strBID: strBID, strMID: strMID, strDireDetailJson: JSON.stringify(directiveDetails) }).done(function (result) { if (result.startsWith("1:")) { iSuccess++; } else { iFailure++; } lbMessageCountElement.textContent = "成功:" + iSuccess + ";失败:" + iFailure; // Update success count }).fail(function () { iFailure++; console.error("Error adding directive for row: ", index + 1); lbMessageCountElement.textContent = "成功:" + iSuccess + ";失败:" + iFailure; // Update failure count }); promises.push(promise); // Push the promise into the array }); // Wait for all AJAX calls to complete Promise.all(promises).then(function () { setTimeout(function () { lbMessageCountElement.textContent = "处理完毕: 成功 " + iSuccess + " 条,失败 " + iFailure + " 条。请点击关闭按钮关闭此页面"; // Update final counts lbMessageCountElement.offsetHeight; // Trigger a reflow }, 0); // resolve({true,iSuccess,iFailure }); resolve(true); }).catch(function (err) { console.error("Error processing directives:", err); lbMessageCountElement.textContent = "处理完成,但出现错误。"; resolve(false); }); dataRows有6000多行数据,每行数据需要执行一次请求,但是浏览器执行那么多次请求会报错,怎么解决,给出完整修改后的代码
最新发布
03-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值