1

最近在一个涉及一些简单表单提交的网站上工作。我决定通过 jquery 的 .ajax() 方法提交数据,而不是使用经典的、老式的 html 方式(即表单标签、带有“action=”属性、按钮等)来处理提交。

以这种方式处理事情,有必要在“提交”之后明确清除表单字段。假设实际的形式看起来像这样:

<form action="some_page.asp" id="my_form" method="post">

        <input type="checkbox" name="form_field" value="some_value" />
        <input type="checkbox" name="form_field" value="some_other_value" />
        <input type="checkbox" name="form_field" value="yet_another_value" />

        <input type="text" name="form_field" />

        <input type="hidden" name="form_field" class="MUST_NOT_CLEAR" value="" />
        <input type="hidden" name="form_field" class="MUST_CLEAR" value="" />
        <input type="hidden" name="form_field" class="MUST_CLEAR" value="" />
</form>

现在,即使表单具有经典的“动作”属性,我并没有真正使用它。我通过 JQUERY .ajax() 提交数据,因此必须在“提交”之后清除或重置表单字段。

所以,真正的问题......这段代码怎么来的:

$("#my_form").find("input:checkbox").removeAttr("checked");
$("#my_form").find("input:text").val("");
$("#my_form").find("input:hidden[class=MUST_CLEAR]").val("");

成功清除了所有正确的字段,而这个

$("#my_form").find("input:checkbox").removeAttr("checked");
$("#my_form").find("input:text").val("");
$(".MUST_CLEAR").val("");

才不是?

4

1 回答 1

0

重置表单时,您可以循环浏览所有字段并单独重置它们,或者您可以重置表单本身:

$('#myform')[0].reset();

虽然这可能不是您问题的直接答案,但它可能会有所帮助

编辑:如果您有不想重置的字段,则可以将它们移出,<form>因为无论如何您都在手动收集数据。因此,如果您只保留需要在其中重置的字段,<form>那么重置表单非常容易

于 2013-05-21T04:56:07.227 回答