我有一个标准的重置按钮的形式编码如下:

<input type="reset" class="button standard" value="Clear" />

问题是,所述表单是多阶段排序的,所以如果用户填写了一个阶段,然后稍后返回,当单击Clear按钮时,各个字段的“记住”值不会重置。

我在想,附加一个jQuery函数循环所有的字段和清除他们'手动'将做的技巧。我已经在使用jQuery的形式,但我只是刚刚赶上速度&所以我不知道如何做到这一点,除了单独引用每个字段的ID,这似乎不是很有效。

请TIA帮忙。


当前回答

我用的是Paolo Bergantino的解决方案,它很棒,但做了一些调整……特别是使用表单名称代替id。

例如:

function jqResetForm(form){
   $(':input','form[name='+form+']')
   .not(':button, :submit, :reset, :hidden')
   .val('')
   .removeAttr('checked')
   .removeAttr('selected');
}

现在当我想用它的时候

<span class="button" onclick="jqResetForm('formName')">Reset</span>

如你所见,这适用于任何表单,因为我使用css样式来创建按钮,页面在单击时不会刷新。再次感谢Paolo的建议。唯一的问题是,如果我在表单中有默认值。

其他回答

我发现这很有效。

$(":input").not(":button, :submit, :reset, :hidden").each( function() {
    this.value = this.defaultValue;     
});

所有这些答案都很好,但最简单的方法是使用虚假重置,即使用链接和重置按钮。

只需添加一些CSS来隐藏你真正的重置按钮。

input[type=reset] { visibility:hidden; height:0; padding:0;}

然后在你的链接上添加如下内容

<a href="javascript:{}" onclick="reset.click()">Reset form</a>

<input type="reset" name="reset" id="reset" /><!--This input button is hidden-->

希望这能有所帮助! 一个。

. getelementbyid(“纳”).reset ()

您可能会发现,没有jQuery实际上更容易解决这个问题。

在常规JavaScript中,这非常简单:

document.getElementById('frmitem').reset();

我总是试图记住,虽然我们使用jQuery来增强和加速我们的编码,但有时它实际上并没有更快。在这些情况下,使用另一种方法通常会更好。

我只是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--"; }

你只需要重新定义你的值回到默认值。