jQuery中返回false后,表单不再提交 - php

我有一个小问题。

提交表单并且表单返回false时,它将不会再次提交。

例如。如果用户错过了他们的名字,它将返回false并显示一条消息,提示您输入他们的名字。

但是,如果不刷新页面,用户将无法重新提交表单,这意味着所有数据都将丢失。

我该如何停止呢?

这是html面:

<form action="javascript:parseResponse();" method="post" name="ajaxcontactform" id="ajaxcontactform">

                <div class="contacttextarea">
                    <input name="contactform" type="hidden" value="1" />

                    <fieldset>
                        <textarea name="comment" cols="5" rows="5" class="contacttextarea"onfocus="if (this.value == 'Please Leave A Message') {this.value = '';}">Please Leave A Message</textarea>
                    </fieldset>

                </div>

                <div class="contacttextboxes">

                    <fieldset>
                        <input id="name" name="name" type="text" class="contacttextform" onfocus="if (this.value == 'Please Insert Your Name') {this.value = '';}"value="Please Insert Your Name">
                    </fieldset>

                    <fieldset>
                        <input id="phone" name="phone" type="text" class="contacttextform" onfocus="if (this.value == 'Please Insert Your Phone Number') {this.value = '';}"value="Please Insert Your Phone Number">
                    </fieldset>

                    <fieldset>
                        <input id="email" name="email" type="text" class="contacttextform" onfocus="if (this.value == 'Please Insert Your Email') {this.value = '';}"value="Please Insert Your Email">
                    </fieldset>

                    <fieldset>
                        <input name="send" type="submit" class="contactformbutton" value="Send">
                    </fieldset>

                </div>

            </form>

这是jQuery方面

$(document).ready(function() {
//// Start Contact Form ////
    $('#ajaxcontactform').submit(function(){$('input[type=submit]', this).attr('disabled', 'disabled');});


    $('#ajaxcontactform').submit(

        function parseResponse() {

            var usersname = $("#name");
            var usersemail = $("#email");
            var usersphonenumber = $("#phone");
            var usersmessage = $("#comment");
            var url = "contact.php";

                var emailReg = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
                var valid = emailReg.test(usersemail);

                if(!valid) {
                    $("#contactwarning").html('<p>Your email is not valid!</p>').slideDown().delay(3000).slideUp();
                    return false;
                }

              if (usersname.val() == "" || usersname.val() == "Please Insert Your Name") {                
                   $("#contactwarning").html('<p>Please Insert Your Name!</p>').slideDown().delay(3000).slideUp();
                   return false;                   
              }
              if (usersemail.val() == "" || usersemail.val() == "Please Insert Your Email") {
                   $("#contactwarning").html('<p>Please Insert Your Email!</p>').slideDown().delay(3000).slideUp();
                   return false;
              }
              if (usersphonenumber.val() == "" || usersphonenumber.val() == "Please Insert Your Phone Number") {
                   $("#contactwarning").html('<p>Please Insert Your Phone Number!</p>').slideDown().delay(3000).slideUp();
                   return false;
              }
              if (usersmessage.val() == "") {
                   $("#contactwarning").html('<p>You forgot to leave a message!</p>').slideDown().delay(3000).slideUp();
                   return false;
              }



                    $.post(url,{ usersname: usersname.val(), usersemail: usersemail.val(), usersphonenumber: usersphonenumber.val(), usersmessage: usersmessage.val() } , function(data) {
                        $('#contactajax').html(data);
                        $("#ajaxcontactform").fadeOut(100).delay(12000).fadeIn(3000);
                        $('#contactajax').fadeIn(3000).delay(3000).fadeOut(3000);
                    });

          }

      );
//// End Contact Form ////

 });

这是php部分:

<?php

if(isset($_REQUEST['contactform']) && $_REQUEST['contactform'] == 1){
    echo '<p>Success!</p>';
} else {
    echo '<p>Form could not be sent, please try again!</p>';
}

除了显示错误外,所有其他功能都不会重新提交。

参考方案

尝试用一些URL而不是JavaScript方法替换表单的action属性值。还可以在Form.submit()事件中直接执行parseResponse()方法主体。

编辑:

在每种return false条件下,在if之前添加以下代码行。它将成功。

 $('input[type=submit]', $("#ajaxcontactform")).removeAttr('disabled');

故障排除“警告:session_start():无法发送会话高速缓存限制器-标头已发送” - php

我收到警告:session_start()[function.session-start]:无法发送会话缓存限制器-标头已发送(错误输出开始如果我将表单数据提交到其他文件进行处理,则可以正常工作。但是,如果我将表单数据提交到同一页面,则会出现此错误。请建议<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0…

使用PHP包含时的淡入淡出过渡 - php

我正在尝试使用jQuery或CSS(或其他方式!)在DIV中包含的php页面上创建淡入淡出或滑动过渡。我四处搜寻,发现了很多淡入淡出过渡的示例,这些实例彼此淡入淡出div或隐藏内容淡入淡出,但是这种情况略有不同。我有一个DIV,其内容由导航栏控制。选中后,每个页面都可以使用PHP成功地包含在div中,但我想使内容淡入和淡出。关于如何在页面更改之间进行漂亮过渡…

AJAX调用只能与$(document).on('click')一起使用 - php

我有一个显示数据库条目的表。用户能够为每一行打开一个弹出菜单。选项之一是删除数据库条目,并且该表应通过AJAX调用相应地刷新。只要有人单击#delete-toggle中的table-popup,我就会在HTML页面上进行AJAX调用(table-popup是div,当有人单击每行中存在的表中的table-edit-button时出现的表): <div …

将输入类型复选框关联到输入类型文本 - php

我有一个问题,我需要将输入类型复选框与输入类型文本关联。情况如下:从数据库中提取数据。 PK数据是复选框的值。当复选框选择输入类型的文本时,您可以在其中输入特定数字。现在的问题是,选中所有类型的复选框输入文本都会被激活。我希望通过选择复选框输入,仅启用与复选框相关联的输入。我的HTML代码(此代码创建一个输入复选框,并为数据库中的每个记录输入文本,而我要激活…

Div单击与单选按钮相同吗? - php

有没有一种方法可以使div上的click事件与表单环境中的单选按钮相同?我只希望下面的div提交值,单选按钮很丑代码输出如下:<input id="radio-2011-06-08" value="2011-06-08" type="radio" name="radio_date&#…