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番目のセットは変更されません。