0

我有一个我正在使用 PHP 处理的表单。在用户提交之前,重置按钮起作用。但是当他们提交并且页面重新加载时(我已经根据 $_POST 值使表单字段保持粘性)重置不起作用。我该如何解决?编辑:例如,表单上的复选框:

 <input type="checkbox"  <?php if (isset($_POST['cb12'])){echo 'checked="checked"';} ?> name="cb12" tabindex="34" id=cb value="Education">

和 HTML:

<tr>
          <td colspan="5" valign="top" class="addit" ><div class="sectionbreak topsp" >
              <input type="hidden" name="failure" value="failure.html" >
              <p>
                <input type="submit" name="Submit" value="Submit" tabindex="49">
                Sends your application by email to The Boggs</p>
              <p>
                <input type="reset" name="Reset" value="Reset" tabindex="50">
                Clears all the fields</p>
            </div></td>
        </tr>

编辑:最后,如果表单已提交(但不完整),我只是隐藏了按钮。也许没有人会注意到。

4

5 回答 5

7

重置按钮撤消用户对表单所做的更改,它不会删除默认值。如果要删除所有默认值,可以使用 JavaScript 执行以下操作:

<script type="text/javascript">
   function resetForm(myFormId)
   {
       var myForm = document.getElementById(myFormId);

       for (var i = 0; i < myForm.elements.length; i++)
       {
           if ('submit' != myForm.elements[i].type && 'reset' != myForm.elements[i].type)
           {
               myForm.elements[i].checked = false;
               myForm.elements[i].value = '';
               myForm.elements[i].selectedIndex = 0;
           }
       }
   }
</script>

...

<form id="myFormId" ...>

<input name="reset" type="reset" onclick="resetForm('myFormId'); return false;" />

...

于 2009-04-02T21:43:03.760 回答
4

您可以使用unset($_POST).

于 2009-04-02T19:55:38.760 回答
3

重置按钮撤消用户对已编辑表单值的更改,它不会删除默认值。重置按钮通常用于已编辑页面或提交页面

<input type="reset" value="Reset" name="reset" />
于 2016-01-14T05:29:10.543 回答
2

我刚刚经历了这件事,请参阅我以前的问题和令人难以置信的有用答案

最后,我不得不手动重置 PHP 中的值。

编辑:对您来说,与您似乎基于 $_POST 而不是 $_SESSION 填充表单值的情况并不完全相同。在这种情况下,请参阅我通过上面的链接接受的答案。

于 2009-04-02T21:53:19.867 回答
2

已经在另一个帖子中回答了这个问题:

我只是 PHP 的中级,有点懒得去钻研 JQuery 之类的新语言,但是下面这不是一个简单而优雅的解决方案吗?

<input name="Submit1" type="submit" value="Get free quote" />
<input name="submitreset" type="submit" value="Reset" />

看不到为什么没有两个提交按钮的原因,只是用途不同。然后简单地说:

if ($_POST['submitreset']=="Reset") {
$_source = "--Choose language from--";
$_target = "--Choose language to--"; }

您只需将您的值重新定义回默认值即可。

于 2012-08-29T06:05:27.977 回答