我使用.ajax呼叫将电子邮件发送到输入电子邮件的Web服务方法。
我想展示一个包含一个说“ sendig …”的图像的ajax模态弹出式扩展程序。
我用.ajax来调用我的网络服务,例如:
var SendingModal = $find('SendMPE'); var Resend = -1; $.ajax({ async: false, type: "POST", url: "FinKaynWebService.asmx/SendEmail", data: "{'Email': '" + Email + "'}", contentType: "application/json; charset=utf-8", dataType: "json", beforeSend: function() { $("#SendMPE").show(); }, success: function(response) { Resend = response.d; SendingModal.hide(); }, failure: function(msg) { alert('Sending Email failed,try later'); } });
问题是我的SendMPE没有显示。
<div id="SendingDiv" style="display:none;background-color:Yellow;color:Blue;"> <img id="LoadingImage" alt="Still sending" src="./Images/Sending.gif" /> <span style="margin-left:10px;">Sending...</span> <asp:Button ID="CloseButton" runat="server" style="display:none;" /> </div> <asp:ModalPopupExtender ID="SendMPE" X="200" Y="200" runat="server" TargetControlID="SendHiddenButton" PopupControlID="SendingDiv" CancelControlID="CloseButton"></asp:ModalPopupExtender>
这是图像引起的还是什么原因?
谁有想法或已经做过类似的事情:将图像加载到弹出窗口中。
首先你应该使用
data: '{"Email": "' + Email + '"}'
或更好
data: JSON.stringify({Email: Email})
代替
data: "{'Email': '" + Email + "'}"
再说一遍。在发送事件之前,beforeSend(jqXHR, settings)应使用该事件修改jqXHR对象(在jQuery 1.4.x中为XMLHTTPRequest)(请参见jQuery.ajax documantation)。就您而言,您可以将$("#SendMPE").show();其放在$.ajax通话之前。
beforeSend(jqXHR, settings)
$("#SendMPE").show();
$.ajax
而且大概你想用$("#SendingDiv").show();?
$("#SendingDiv").show();