如何使用php表单的重置按钮?

时间:2009-04-02 19:52:54

标签: php forms reset

我有一个用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>

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

5 个答案:

答案 0 :(得分: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;" />

...

答案 1 :(得分:4)

您可以使用unset($_POST)对重置事件做出反应。

答案 2 :(得分:2)

我刚刚完成了这个问题,请参阅我的previous question & the incredible helpful answers

最后,我必须手动重置PHP中的值。

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

答案 3 :(得分: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--"; }

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

答案 4 :(得分:2)

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

<input type="reset" value="Reset" name="reset" />