DIV弹出层+Ajax 实践Button OnClientClick验证

本文介绍了一种利用Ajax技术改进旧系统的方法,通过对系统中特定DIV元素的可见性控制及客户端验证来提升用户体验。该方案在不大幅改动现有系统结构的前提下实现了地址验证的功能。
DIV层
ContractedBlock.gifExpandedBlockStart.gifCode
<div id="divPlusAddress" runat="server" style="visibility:hidden;">
<div id="divCover" style="left:0px; top:0px; width:100%; height:100%; background-color:Gray; position:absolute;filter:alpha(opacity=50);"></div>
 
<div style="z-index:5; top:100px; left:200px; position:absolute; width:300px; height:150px; background-color:White;">
 
<ul style="list-style:none;">
 
<li><span style="margin-left:10px;">地址:</span><span style="margin-left:10px;"><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></span>
 
</li>
 
<li><span style="margin-left:10px;">备注:</span><span style="margin-left:10px;"><asp:TextBox ID="TextBox2" runat="server" TextMode="MultiLine" Width="148px"></asp:TextBox></span>
 
</li>
 
<li><span style="margin-left:80px;"><asp:Button id="btnclientAdd" runat="server" OnClick="Button1_Click" OnClientClick="return checkAddress();" style="width:50px;" Text="添加" /></span>
     
<span><input type="button" id="btnClientCancel" value="取消" style="width:50px;" onclick="btnCancel();"/></span>
 
</li>
 
</ul>
 
</div>
 
</div

JS脚本

ContractedBlock.gifExpandedBlockStart.gifCode
function plusAddress(){
  
try{
  document.getElementById(
"ctl00_ContentPlaceHolder1_divPlusAddress").style.visibility="visible";
  document.getElementById(
"ctl00_ContentPlaceHolder1_TextBox1").value="";
  document.getElementById(
"ctl00_ContentPlaceHolder1_TextBox2").value=""}
  
catch(e){alert(e);}}
function callSrv(url,callBack){
  
var xmlHttpObj=getxmlHttpObj();
  xmlHttpObj.onreadystatechange
=state_Change;
  
function state_Change(){
   
if(xmlHttpObj.readyState==4&&xmlHttpObj.status==200){
   callBack(xmlHttpObj);}}
 xmlHttpObj.open(
"GET",url,false);
 xmlHttpObj.send(
null);}
function btnCancel(){
document.getElementById(
"ctl00_ContentPlaceHolder1_divPlusAddress").style.visibility="hidden";}
function checkAddress(){
  
var isExit=false;
  
if(document.getElementById("ctl00_ContentPlaceHolder1_TextBox1").value==""){
  alert(
'地址不能为空');
  
return false;}
  
this.callBack=function(_xmlHttp){
  
try{
    
if(_xmlHttp.responseText=='Existed')
     alert(
'此地址已存在');
     
else{isExit=true;}}
  
catch(e){alert(e);}finally{}}
callSrv(
"../CheckAddress.ashx?strID="+document.getElementById("ctl00_ContentPlaceHolder1_TextBox1").value,this.callBack);
return isExit;}function getxmlHttpObj(){
   
var xmlHttp=null;
    
var activeKey = new Array("MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP");
    
if(window.ActiveXObject){
       
for(var i=0;i<activeKey.length;i++){
          
try{
            xmlHttp 
= new ActiveXObject(activeKey[i]);
            
if(xmlHttp!=null)
             
return xmlHttp;}
          
catch(error){
              
throw new Error("Your browser does not support ajax");}}}
    
else if(window.XMLHttpRequest){
       xmlHttp 
= new XMLHttpRequest();} 
    
return

 

ashx就不贴了,

这是本人第一个用XmlHttpRequest 实现的Ajax程序,本程序是对公司的老系统进行改造,时间有限只应用Ajax进行验证,通过后直接调用PostBack进行处理。

思路:设置div runat="server" 样式 visibility="hidden" 使用 asp:Button 添加 OnClientClick事件,验证使用的是Ajax,当通过所有验证,则执行Button的OnClick服务端事件。

其中验证的Ajax代码写的非常乱,即不是面向对象也不是面向过程,这就是javaScript。。。


转载于:https://www.cnblogs.com/yinhaiming/archive/2009/03/19/1416760.html

ASP AJAX 文件上传可以使用以下步骤: 1. 在 ASP.NET Web 应用程序中添加 Microsoft Ajax Library。 2. 在页面上添加一个 FileUpload 控件和一个 ASP.NET Button 控件。 3. 在 Button 的 Click 事件中,编写 ASP.NET 代码以处理文件上传。 4. 使用 Ajax 异步 Post 方式将文件上传到服务器。 下面是一个简单的示例代码: HTML 页面: ```html <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>ASP AJAX 文件上传示例</title> <script src="/Scripts/MicrosoftAjax.js" type="text/javascript"></script> <script src="/Scripts/MicrosoftAjaxWebForms.js" type="text/javascript"></script> <script src="/Scripts/jquery-1.12.4.min.js" type="text/javascript"></script> <script type="text/javascript"> function uploadFile() { var file = $("#fileUpload").get(0).files[0]; var fd = new FormData(); fd.append("file", file); $.ajax({ url: "UploadHandler.ashx", type: "POST", data: fd, processData: false, contentType: false, success: function (response) { alert(response); }, error: function (xhr, status, error) { alert(error); } }); } </script> </head> <body> <form id="form1" runat="server"> <div> <input type="file" id="fileUpload" /> <br /> <asp:Button ID="btnUpload" runat="server" Text="上传" OnClientClick="uploadFile(); return false;" /> </div> </form> </body> </html> ``` ASP.NET 代码: ```csharp using System; using System.IO; using System.Web; public partial class UploadHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { HttpPostedFile file = context.Request.Files["file"]; string fileName = context.Server.MapPath("~/Uploads/" + Path.GetFileName(file.FileName)); file.SaveAs(fileName); context.Response.Write("上传成功!"); } public bool IsReusable { get { return false; } } } ``` 在这个示例中,我们使用了 jQuery 库来简化 Ajax 调用。在 uploadFile 函数中,我们获取文件上传控件的值,并将文件数据添加到 FormData 对象中。然后使用 Ajax 异步 Post 方式将文件上传到服务器的 UploadHandler.ashx 处理程序。在处理程序中,我们从请求中获取文件并将其保存到服务器的 Uploads 文件夹中。最后,我们向客户端发送一个响应,表示文件上传成功。 注意:这个示例只是演示了如何使用 ASP.NET 和 Ajax 实现文件上传,实际应用中需要进行更多的安全性检查和错误处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值