如何在使用jquery提交表单之前显示通知?

时间:2013-07-17 16:40:40

标签: javascript jquery

是否可以保持表单提交以显示通知几秒钟?

在回调表单提交后页面重新加载之前,我想在这些行中显示一些内容:“感谢您的回拨请求。我们会尽快与您联系。”

2 个答案:

答案 0 :(得分:1)

您可以使用preventDefault()来阻止表单提交,显示您想要的信息,并在所需的延迟后在setTimout()中提交()表单。

答案 1 :(得分:1)

如果您使用AJAX提交,则无需刷新。

以此为例:

<form>
  <input type="text" name="fname"/>
  <input type="text" name="lname"/>
  <input type="text" name="email"/>
  <input type="text" name="address"/>
  <input type="password" name="password"/>
  <!--
     Here you have two options. Use <a></a> or an input with type="submit"
     since you're using AJAX, I reccomend using <a href="#" id="submit_form">Submit</a>
  -->
  <a href="#" id="submit_form">Submit</a>
</form>
感谢您的回电请求。我们很快就会联系。

在javascript上:

<script>
  $(document).ready(function(){
    $("#submit_form").bind("click",function(){
     //do a $.post();
     $.post("submit/this.php",something : "content_of_something",
       function(response){
          if(response==1)//or whatever you want
            $('#some_id').fadeIn(function() {
               setTimeout(function(){
                 window.location.reload();
               },3000);                         
            });
          else
            alert("Error ocurred");
       }
     );


    });
  });
</script>

在PHP上,检查变量是否通过$ _POST到达服务器(出于调试目的,在服务器上执行var_export($ _ POST),并在客户端在函数(响应)之后立即发出警报(响应))。如果一切都按照预期的方式进行,那么echo 1(所以响应将匹配1 == response == 1),否则,你可以回应你想要的其他内容。