Php jquerypost问题
我有一个表单,当我点击提交时,它会触发一个脚本 守则的一部分是:Php jquerypost问题,php,jquery,forms,post,Php,Jquery,Forms,Post,我有一个表单,当我点击提交时,它会触发一个脚本 守则的一部分是: if(hasError == false) { $(this).hide(); $("#myForm").fadeOut("fast", function(){ $("#myForm").before('<img src="../images/loading.gif" alt="Loading" id="loadingImage" />');
if(hasError == false) {
$(this).hide();
$("#myForm").fadeOut("fast", function(){
$("#myForm").before('<img src="../images/loading.gif" alt="Loading" id="loadingImage" />');
});
$.post("mail.php",
{ emailFrom: emailFromVal, emailName: nameVal, emailMessage: messageVal },
function(data){
$("#loadingImage").fadeOut("fast", function() {
$("#loadingImage").before('<p>Your message has been sent. Cheers!</p>');
});
}
);
}
if(hasError==false){
$(this.hide();
$(“#myForm”).fadeOut(“快速”,函数(){
美元(“#我的表格”)。之前(“”);
});
$.post(“mail.php”,
{emailFrom:emailFromVal,emailName:nameVal,emailMessage:messageVal},
功能(数据){
$(“#加载图像”).fadeOut(“快速”,函数(){
$(“#加载图像”)。之前(“您的邮件已发送。干杯!”);
});
}
);
}
提交表单时,加载图像将显示。。。留下来
如果我使用Firebug,在显示加载图像时,在控制台中输入:
$("#loadingImage").fadeOut("fast", function() {
$("#loadingImage").before('<p>Your message has been sent. Cheers!</p>');
$(“#加载图像”).fadeOut(“快速”,函数(){
$(“#加载图像”)。之前(“您的邮件已发送。干杯!”);
图像消失,文本出现
为什么?
非常感谢
注意:电子邮件是发送的问题是,在使用jQuery方法绑定所有DOM元素后,会添加新元素。动态元素需要在加载后进行绑定。最快的解决方案是在页面上添加HTML,以便jQuery可以在页面加载时绑定元素
<img src="../images/loading.gif" alt="Loading" id="loadingImage" style="display:none" />
创建img后,您的第一次淡出将结束。您应该执行以下操作:
if(hasError == false) {
$(this).hide();
$("#myForm").fadeOut("fast", function(){
$("#myForm").before('<img src="../images/loading.gif" alt="Loading" id="loadingImage" />');
$.post("mail.php", { emailFrom: emailFromVal, emailName: nameVal, emailMessage: messageVal },
function(data){
$("#loadingImage").fadeOut("fast", function() {
$("#loadingImage").before('<p>Your message has been sent. Cheers!</p>');
});
}
);
});
}
if(hasError==false){
$(this.hide();
$(“#myForm”).fadeOut(“快速”,函数(){
美元(“#我的表格”)。之前(“”);
$.post(“mail.php”,{emailFrom:emailFromVal,emailName:nameVal,emailMessage:messageVal},
功能(数据){
$(“#加载图像”).fadeOut(“快速”,函数(){
$(“#加载图像”)。之前(“您的邮件已发送。干杯!”);
});
}
);
});
}
如您所见,我们将$.post()
调用移到了第一个fadeOut()
回调函数中
希望这有帮助。干杯回调传递给
$.post()
只有在请求成功时才会执行-mail.php是否返回200 OK?谢谢各位。我已经厌倦了这两种解决方案,但它没有任何帮助。我仍然显示加载图像;并发送电子邮件。不确定如何使用FireBug…但看起来没有错误。此外,POST mail.php返回200 OK。但“响应”选项卡中没有任何内容。..为了在FireBug的响应选项卡中显示一些内容,您必须从mail.php发送一些文本。可能在脚本的末尾是“Messages Sent”。此外,您可能希望在执行$(“#loadingImage”)之前添加一个警报,以验证代码是否正在回调中执行。淡出,例如:警报(“单击确定后,图像应该消失”);抱歉,伙计们。这是可行的。我尝试使用谷歌Chrome,我确信缓存系统有问题……我已经将您的两种解决方法应用到了一起。1-我已经在我的页面中添加了一个img标签,并且我已经按照Edgar的建议更改了脚本(也不确定是否有任何影响)。非常感谢您在这方面的快速帮助。