喜大普奔,今天终于完成了一个月前就想完成的一个代码实现。就是在点击一个按钮后禁用按钮,弹出正在操作的提示框,执行完事件后再启用按钮。

以前的想法是Ajax和aspx联用,这样,省页面,也不用对后台代码进行修改,后来发现,有一些类在这个联用中不能使用,在这个过程里,方法是static类型的,我这里有一个发送邮件的操作,使用了Server.MapPath方法和file类的一些方法,就不能使用了。在请教了一个老同事后,决定采用Ajax和asmx的联用。

基本思路是,先点击一个按钮,弹出一个弹窗提示,按钮disable,Ajax传输数据到asmx处理,asmx处理成功后返回0、1的标识,Ajax再接受标识后显示按钮和关掉弹窗。

弹窗是使用了公司的一个弹窗,不是自己写的。

HTML页面

<input type="button" id="btsave" οnclick="Submitcheck()" value="提交/Save" class="btn-primary" style="text-decoration: none; height: 25px;" />

js

function Submitcheck() {if (document.getElementById("txquantity").value == "") {alert("Please fill in the Quantity(请填写购买数量)");return false;}            $("#btsave").hide();$.Dialog('Searchff', null, null, 520, 80);var userid = document.getElementById("iuserid").value;var username = document.getElementById("iusername").value;$.ajax({type: "POST",url: "WebService1.asmx/Submit",//contentType: "application/json; charset=utf-8",//dataType: "json",dataType: "xml",data: {iuserid: userid,iusername: username//只传递了部分字段},//async: false,success: function (result) {var my = $(result).find("string").text();//很重要的解析if (my == "1") {$.DialogClose('Searchff', null, null, 520, 80);alert("下单成功,我们会尽快帮您处理/Order Success");$("#btsave").show();} else {$.DialogClose('Searchff', null, null, 520, 80);alert("下单失败,请联系客服/Order failure,Contact customer service");$("#btsave").show();}},error: function () {alert("Exception(系统异常)");}});}

contentType: "application/json;charset=utf-8",//有这条报“请求格式无效

这个可能后asmx返回的是xml格式相冲突吧。

//async: false,是否异步,有这句话会不能success结果处理的。

asmx页面

 [WebMethod]public string Submit(string iuserid, string iusername){string userid = iuserid;string returnstring = "1";try{#region 获取orders信息Orders orders = new Orders();orders.orderid = userid + DateTime.Now.ToString("yyyyMMddHHmmss");orders.userid = Convert.ToInt32(userid);orders.username = iusername; #endregion                #region 插入数据库bool adflag = new OrdersBLL().Add(orders);               if (adflag){//购买成功后清除部分填写信息//txquantity.Value = "";//tbremark.Text = "";// return;}else{returnstring = "0";return returnstring;}#endregion#region 组装邮件var strFileCn = File.ReadFile(Server.MapPath("order_model.html"), "utf-8");strFileCn = strFileCn.Replace("#orderid#", orders.orderid);strFileCn = strFileCn.Replace("#username#", orders.username);var att = new string[1];att[0] = "";var strRocFileName = "Adjunct/ROC/" + orders.orderid + ".htm";strRocFileName = Server.MapPath(strRocFileName);try{File.WriteFile(strRocFileName, strFileCn, "utf-8");}catch (Exception){                   return "0";}string strsendto = iemail; //应该是发送给固定的邮箱,需要提供if (File.Net_Email(strsendto, "", "", strFileCn, "iTourbagSoftCard Commodity order sheet.", att, "", "") == "1"){                    File.SysLogAdd(1, iusername, 1, "订单提交成功,系统自动发送邮件,我们会尽快帮您处理" + strsendto, ip);}#endregion}catch (Exception ex){                returnstring = "0";return returnstring;}return returnstring;}

代码不全,只是提示怎么使用。

一番辛苦,忙这个差不多忙了半天,好多东西都要百度,也差点想半途放弃,冒出了两个想法,一个是asmx传值和获取值的时候那么写,是因为不会写JSON,二是注释async: false这句话,刚开始发现它在的时候,处理显示的效果好像是点击按钮,等按钮事件处理完在弹出提示的,突然想起这句话好像和异步有关,就注释点试试看的,没想到还真成了。还是学的不好啊。还有将解析result的时候,试了好多方法,发现都没有结果,现在回想应该是方法错了,当时使用的方法基本上是解析JSON的,这里asmx返回的是xml,然后百度js使用Ajax和asmx,看到JQuery中ajax,get方法在ashx,aspx,asmx中的使用一文,发现了自己的问题(我转载了这篇文章),及时改了过来。

JQuery中ajax,get方法在asmx中的使用相关推荐

  1. [转]jquery的ajax交付时“加载中”提示的处理方法

    本文转自:http://www.educity.cn/wenda/77121.html jquery的ajax提交时"加载中"提示的处理方法     方法1:使用ajaxStart ...

  2. 使用jQuery的ajax的方法完成一个手机归属地查询

    使用jQuery的ajax的方法完成一个手机归属地查询 1.设计页面的效果: 2. 选用HTTP GET方法,将电话提交到服务端,并将返回的结果显示在界面相应的位置: 3. 服务端API地址:http ...

  3. JQuery和Ajax在ASP.NET MVC中的基本应用

    当我们在开发Web应用程序中使用JQuery和Ajax异步调用来实现很多功能时,不仅提高了程序的性能,而且给用户一个更好的交互式界面操作体验.接下来我们依旧用简单的实例来学习下它们的应用. 创建一个A ...

  4. jquery中的map()方法与js中的map()方法

    1.jquery中的map()方法 首先看一个简单的实例: $("p").append( $("input").map(function(){ return $ ...

  5. java中ajax由哪些组成,java中ajax

    java中ajax [2021-02-01 14:57:40]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/(\s| ...

  6. linux中替换的方法,linux vi 中s 替换方法

    vi/vim 中可以使用 :s 命令来替换字符 :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :n ...

  7. 整理 .Net 2.0 下 WinForms中常用的方法(更新中...)

    using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; /**// ...

  8. 数据挖掘中数据预处理方法_数据挖掘中的数据预处理

    数据挖掘中数据预处理方法 In the previous article, we have discussed the Data Exploration with which we have star ...

  9. java中函数和方法区别_java中函数和方法的区别是什么?

    java中函数和方法的区别是什么? 面向对象的语言叫方法 面向过程的语言叫函数 在java中没有函数这么一说,只有方法一说.实际上方法就是函数,函数就是方法,只是在不同的语言不同的称呼而已. [推荐教 ...

最新文章

  1. 各种抠图动态图片_学习抠取动物毛发图片的PS抠图技巧
  2. java 数组a赋值给数组b_java编程将a,b数组中不同的数字保存到一个新的数组中
  3. CMS系统模版引擎设计(3):Label基类的设计
  4. 【Spring】Spring 使用 Redis 事务
  5. interface接口_Java程序设计--接口interface(笔记)
  6. axios请求失败重新发起请求_axios请求超时,设置重新请求的完美解决方法
  7. 构建Python软件大厦系列
  8. clear与resize
  9. java生成视频缩略图
  10. 功率因数cosφ仪表盘
  11. php 路由修改密码,TPLINK路由器如何修改管理密码和无线密码)
  12. 竟事而后言——谨记微言,聊以自省
  13. 推荐几款牛逼Chrome网页翻译插件,功能强大内容惊艳,务必低调使用
  14. 字节跳动三场技术面+HR面,掌握这些知识点再也不怕面试通不过!
  15. HL6601高性价比多种快充协议芯片QC3.0QC2.0华为FCP,SCP.VOOV苹果三星快充协议
  16. [Unity]Optimize Your Mobile Game Performance中文版
  17. Axios的二次封装(简单易懂)
  18. 最新时下最火的盲盒商城源码/视频搭建教程
  19. 动画练习:Punch
  20. matlab中设置不同的点的形状,matlab点的形状

热门文章

  1. 【uniapp】uniapp中页面传值方式总结
  2. 网站建设(2)——DNS及DNS解析
  3. 实现单芯片2400bps 音频编解码方案
  4. 携程泄密事件探因 核心IT人员仅六、七名
  5. SEO 词库完整指南(转载)
  6. 全电发票开票API接口文档
  7. 高斯曲线拟合原理及实现
  8. 意派epub360:细说交互视频H5的前世今生
  9. Linux配置ntp时间同步服务器(全)No association ID's returned
  10. 复活小米蓝牙手柄,让手柄控制电脑PC玩React写的网页游戏