提交后如何清除表单数据,但数据通过后

时间:2016-03-20 12:50:03

标签: html forms submit reset

我一直在寻找超过2天的时间来解决我的这个问题。通过堆栈上的所有相关帖子,但没有运气。我有一个接受数据的表单,然后传递给php程序来处理它,然后调用html感谢页面。我对Javascript或JQuery一点也不熟悉,但是花了一些时间才能使它工作。我在这里发布代码以及许多我试图无效的建议。任何帮助结束我的痛苦的人都会受到赞赏。谢谢。

HTML

<form method='post' action='contact-form-proc.php' name='contactform' id='contactform' onsubmit="setTimeout('clear_form()',200);return true">
    <p>
    <label for='fullname'>Your Name:</label><br/>
    <input type='text' name='fullname' />
    </p>

    <p>
    <label for='email' >Email Address:</label><br/>
    <input type='text' name='email' />
    </p>

    <p>
        <label for='mobile' >Mobile:</label><br/>
        <input type='text' name='mobile' />
    </p>
    <p>
        <label for='checkIndate' >Check in Date:</label><br/>
        <input type='text' name='checkIndate'/>
    </p>
    <p>
        <label for='comment' >Comment:</label><br/>
        <textarea name='comment' cols='25' rows='3'></textarea>
    </p>

    <input type="image" src="submit.gif" name="submit"/>
    <!--<input type='submit' name='submit' value='' id="submit" />-->
    <input type="hidden" name="submit" value="Submit"/>

</form>

PHP

<?php

if(empty($_POST['submit']))
{
    echo "Form is not submitted!";
    exit;
}
if(empty($_POST["fullname"]) ||
    empty($_POST["email"]))
    {
        echo "Please fill the form";
        exit;
    }

$name = $_POST["fullname"];
$email = $_POST["email"];
$mobile = $_POST["mobile"];
$checkindate = $_POST["checkIndate"];
$comment = $_POST["comment"];

mail( 'xxx@xxxxxx.com' , 'New form submission' , "New form submission: Name: $name, Email:$email, Mobile: $mobile, CheckIndate:$checkIndate, Comment:$comment"  );

header('Location: thank-you.html');


?>

这些是我尝试过的:

<script type="text/javascript">
       /*$('#contactform').trigger("reset");*/
       function clear_form() {
      /*    document.contactform.reset();

                document.getElementById("contactform").reset();*/
    /*$(window).load(function() {
        $('#contactform input[type="text"]').val('');*/


        $(window).load(function() {
                $('#contactform').children('input').val('');
                }

        });
                }
  </script>

2 个答案:

答案 0 :(得分:1)

非常感谢您抽出时间,并试图帮助我和所有其他人解决这个奇怪的问题。

我找到了一个解决方案。我保留了一切,并且另外,

一个。写了一个函数来重置表单, 湾将该函数添加到body元素的onload和onunload处理程序中。

如下:

<script>
    function clearForms()
    {
      var i;
      for (i = 0; (i < document.forms.length); i++) {
        document.forms[i].reset();
      }
    }
</script>

<body onload="clearForms()" onunload="clearForms()">

希望它可以帮助并阻止像我这样的人浪费宝贵的时间和日子。问候。

答案 1 :(得分:0)

尝试这个。

<script type="text/javascript">
  $(document).ready(function(){
        $('input').val('');
    });
</script>

结束你不必调用onsubmit动作,document.ready就足够了。