4

フォームの一部のみを復元することはどういうわけか可能ですか?たとえば、fieldset#1ですべてをリセットしたいが、他のすべての値はfieldset#2に保持したい。

<form>
    <fieldset id="1">…&lt;/fieldset>
    <fieldset id="2">…&lt;/fieldset>
</form>

もちろん、次のようなJavaScript- / jQuery-solutionを使用することもできます(心で書かれ、テストされていません):

$('#1 :input').val('');

ただし、これでは以前に設定されたデフォルト値は復元されません。または、事前にすべてのデフォルト値を保存し、テキストエリア、入力、チェックボックスなどをチェックする必要があります…これを行う別の方法はありますか?

4

4 に答える 4

3

idこれが意図したものかどうかはわかりませんが、これにより、のを持たないすべてのフィールドセットがフィルタリングtwoされ、それらのフィールドセット内のフォーム要素がデフォルト値にリセットされます(入力/テキストエリアでのみ機能することに注意してくださいdefaultValue! ):

$(document).ready(function() {

  $('#btn-reset').on('click', function(e) {
    e.preventDefault();

    $('form > fieldset').filter(function() {
      return $(this).prop('id') !== 'two';
    }).children(':input').each(function() {
      $(this).val(this.defaultValue);
    });

  });
});

マークアップの例

<form>

    <fieldset id="one">
        <input type="text" value="this is a default value" />
        <textarea>this is another default value</textarea>
        <p>this paragraph doesn't get looped over</p>
    </fieldset>

    <fieldset id="two">
        <input type="text" value="text here.." />
        <textarea>hello world!</textarea>
    </fieldset>

    <button id="btn-reset">Reset</button>

</form>

これがフィドルです

すべての値を変更してから[リセット]をクリックすると、最初のフィールドセットのすべての値がデフォルト値にリセットされ、2番目のセットは変更されません。

于 2012-09-21T12:11:53.393 に答える
1

これがあなたの問題を解決することを願っています

http://www.electrictoolbox.com/jquery-clear-form/

于 2012-09-21T11:51:49.640 に答える
0

これは、KnockoutJSを使用して実行できます。デフォルト値でビューモデルを作成します。

于 2012-09-21T11:49:19.300 に答える
0

JavaScriptなしでこれを行う方法はありません...リセットボタンは常にフォーム要素全体をリセットします。

于 2012-09-21T11:50:07.157 に答える