2

以下是我的 js 函数,我一直在尝试从我的联系表单发送电子邮件,我使用了工作正常的验证检查,但是当代码发送表单时,该过程停止在那里并且没有收到来自$.ajax. 奇怪的是,当我在点击事件上使用相同的代码时$('#send_message').click(function(e){它工作正常,但当我删除点击触发器监听并尝试通过调用函数时它没有工作请让我知道我做错了什么,所以我可以解决问题通过调用函数发送电子邮件

 $.ajax({
                    type:"POST",
                    url:"email.php",
                    data: $("#contact").serialize(),
                    success:function(result){
                        //alert(response);
                        if(result == 'sent')
                        {

                             $('#send_message').removeAttr('disabled').attr('value', 'Send Info');

                            //and show the mail success div with fadeIn

                        }
                        else
                        {

                            //show the mail failed div


                        }
                     }

                });
4

1 回答 1

2

您需要始终返回 false。表单提交取消了正在进行的 ajax 回发。

所以只需删除else.

jquery ajax 也支持同步回发:

$.ajax({
   type:"POST",
   url:"send_email.php",
   data: $("#contact").serialize(),
   async: false,
   success:function(result){

编辑:第一个解决方案也应该有效,但在表单标签中使用返回很重要,例如<form method="POST" onsubmit="return somefunction();">

于 2013-05-14T23:43:15.040 回答