1

最近、いくつかの簡単なフォーム送信を含む Web サイトに取り組んでいました。古典的な昔ながらの html の方法 (つまり、"action=" 属性、ボタンなどを含むフォーム タグ) で送信を処理するのではなく、jquery の .ajax() メソッドを介してデータを送信することにしました。

そのように処理するには、「送信」後にフォーム フィールドを明示的にクリアする必要がありました。実際のフォームは次のようになったとしましょう。

<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 に答える