jQuery でフォーム フィールドをクリアする

Habdul Hazeez 2023年6月21日
  1. CSS セレクターを使用してフォーム フィールドをクリアする
  2. jQuery .find() メソッドを使用してフォーム フィールドをクリアする
jQuery でフォーム フィールドをクリアする

jQuery を使用してフォーム フィールドをクリアするには、値を空の文字列に設定します。

この記事では、使用できる 2つの方法について説明します。 前者はチェックボックスを考慮しますが、後者は考慮しません。

CSS セレクターを使用してフォーム フィールドをクリアする

CSS セレクターの組み合わせを使用して、jQuery の HTML フォーム フィールドをクリアできます。 ここで、CSS セレクターは、ラジオ ボタンやチェックボックスなどの一部のフォーム フィールドを除外します。

これにより、追跡が困難なバグにつながる可能性のある value 属性の偶発的なクリアランスが防止されます。 以下は HTML フォーム フィールドをクリアし、チェックボックスの値はそのまま残します。

それらがチェックされている場合でも、コードはそれらのチェックを外します。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>01-jQuery-clear-form</title>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
	<style>
		form {
			width: 50%;
			margin: 2em auto;
			font-size: 1.2em;
		}
		.form_row {
			margin-bottom: 1em;
		}
	</style>
</head>
<body>
	<main>
		<form id="bio_data_form">
			<div class="form_row">
				<label for="first_name">First name</label>
				<input id="first_name" type="text" name="first_name">
			</div>
			<div class="form_row">
				<label for="last_name">Last name</label>
				<input id="last_name" type="text" name="last_name">
			</div>
			<div class="form_row">
				<label>
					<input type="checkbox" name="engineer" value="engineer" value="engineer"> I am an engineer
				</label>
			</div>
			<div class="form_row">
				<button class="clear_form">Clear form</button>
				<input type="submit" name="submit_form" value="Submit form" class="submit_form">
			</div>
		</form>
	</main>
	<script>
		$(document).ready(function() {
			$('.clear_form').click(function(e) {
				e.preventDefault();
				$(':input', '#bio_data_form')
				.not(':button, :submit, :reset, :hidden')
				.prop('checked', false).prop('selected', false)
				.not(':checkbox, :radio, select').val('');
			});
		});
    </script>
</body>
</html>

出力:

CSS セレクターを使用してフォーム フィールドをクリアする

jQuery .find() メソッドを使用してフォーム フィールドをクリアする

jQuery .find() メソッドは、HTML フォーム要素を検索できます。 そこから、それらの値をクリアできます。 最初の例とは異なり、フォームにはチェックボックスがありません。

コードはテキスト入力と textarea 要素をターゲットにしますが、必要に応じてさらに要素を追加できます。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>02-jQuery-clear-form</title>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
	<style>
		form {
			width: 50%;
			margin: 2em auto;
			font-size: 1.2em;
		}
		.form_row {
			margin-bottom: 1em;
		}
		label, input:not([type="submit"]), textarea {
			display: block;
			width: 50%;
		}
	</style>
</head>
<body>
	<main>
		<form id="bio_data_form">
			<div class="form_row">
				<label for="first_name">First name</label>
				<input id="first_name" type="text" name="first_name">
			</div>
			<div class="form_row">
				<label for="last_name">Last name</label>
				<input id="last_name" type="text" name="last_name">
			</div>
			<div class="form_row">
				<label>Who are you?</label>
				<textarea></textarea>
			</div>
			<div class="form_row">
				<button class="clear_form">Clear form</button>
				<input type="submit" name="submit_form" value="Submit form">
			</div>
		</form>
	</main>
	<script>
		$(document).ready(function() {
			$('.clear_form').click(function(e) {
				e.preventDefault();
				$(this).closest('form').find("input[type=text], textarea").val("");
			});
		});
    </script>
</body>
</html>

出力:

jQuery find メソッドを使用してフォーム フィールドをクリア

著者: Habdul Hazeez
Habdul Hazeez avatar Habdul Hazeez avatar

Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.

LinkedIn

関連記事 - jQuery Form