最近在一个涉及一些简单表单提交的网站上工作。我决定通过 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("");
才不是?