因此,我在我的网站主页上设置了一个密码恢复选项,它使用swift mailer向用户发送新密码的电子邮件。用户在框中输入他/她的电子邮件,主页向php脚本发送AJAX请求。所有这些都可以工作,但是当你点击发送时,php脚本需要一段时间才会发回一个回复,写着New password successfully sent to email
。我不希望用户一次又一次地点击发送,认为第一次点击没有成功。有没有办法在ajax等待脚本响应时禁用send按钮并显示某种类型的加载栏?谢谢
发布于 2012-10-26 19:50:51
使用JQuery ajaxStart和ajaxStop函数,而不是手动操作。
$('#progress').ajaxStart(function () {
//disable the button
$(this).show();
}).ajaxStop(function () {
//enable the button
$(this).hide();
});
注意:页面上的每个JQuery AJAX操作都会显示get。
发布于 2012-10-26 19:26:12
您可以在单击按钮后禁用该按钮,然后在ajax完成时重新启用该按钮。
因此,在调用ajax之前,请执行以下操作:
$("#MyBtn").attr("disabled", "disabled");
然后,在AJAX完成后,删除该属性
$("#MyBtn").removeAttr("disabled");
您还可以有一个隐藏的div,然后显示/隐藏它。
I.E
<div id="divWait" style="display:none;">Please Wait...</div>
你上面的代码现在应该是
所以在ajax调用之前:
$("#MyBtn").attr("disabled", "disabled");
$("divWait").show();
当AJAX完成时...
$("#MyBtn").removeAttr("disabled");
$("#divWait").hide();
此外,根据AJAX调用的结果,您还可以更改div中的文本。
所以..。如果可以,不要隐藏div,只需更改文本即可:
$("#divWait").html("Your password was sent..");
如果失败,就像上面那样隐藏div,或者更改消息
$("#divWait").html("oops, there was a booboo");
https://stackoverflow.com/questions/13093135
复制