jQuery에서 확인란 비활성화

Habdul Hazeez 2024년2월15일
  1. jQuery에서 .attr() 메서드를 사용하여 확인란 비활성화
  2. jQuery에서 .prop() 메서드를 사용하여 확인란 비활성화
jQuery에서 확인란 비활성화

jQuery에서 체크박스를 비활성화하려면 jQuery .attr()prop() 메서드를 사용할 수 있습니다. 이 문서에서는 두 가지 자세한 예제를 사용하여 이를 수행하는 방법을 설명합니다.

jQuery에서 .attr() 메서드를 사용하여 확인란 비활성화

HTML 양식에서 확인란을 비활성화하려면 attr() 메서드를 사용하여 각 확인란에 disabled 속성을 추가할 수 있습니다. 이를 활성화하려면 클릭 이벤트를 다른 확인란에 첨부할 수 있습니다.

따라서 체크하면 나머지 체크박스가 활성화됩니다. 동시에 선택을 취소하면 비활성화 상태로 돌아갑니다.

다음 코드는 이를 수행하는 방법을 보여주고 그 결과는 다음과 같습니다.

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>01-jQuery-disable-checkboxes</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 {
			outline: 2px solid #1a1a1a;
			width: 50%;
			margin: 0 auto;
			padding: 0.5em;
		}
		label {
			display: block;
			cursor: pointer;
			font-size: 1.2em;
		}
		[disabled] {
			cursor: not-allowed;
		}
		label[style^="opacity: 0.4"] {
			cursor: not-allowed;
		}
		label:first-child:hover {
			background-color: #aaa;
		}
	</style>
</head>
<body>
	<main>
		<form id="inventors-list">
			<label>
				<input type="checkbox" id="disable-all-checkboxes">Enable all options
			</label>
			<label>
				<input type="checkbox" class="inventor"> Thomas Edison
			</label>
			<label>
				<input type="checkbox" class="inventor"> Albert Einstein
			</label>
			<label>
				<input type="checkbox" class="inventor"> Ernest Rutherford
			</label>
		</form>
	</main>
	<script>
		$(function() {
			enable_all_checkboxes();
			$("#disable-all-checkboxes").click(enable_all_checkboxes);
		});

		function enable_all_checkboxes() {
		  if (this.checked) {
		    $("input.inventor").removeAttr("disabled");
		    $("input.inventor").parent().css('opacity', '')
		  } else {
		    $("input.inventor").attr("disabled", true);
		    $("input.inventor").parent().css('opacity', '0.4')
		  }
		}
    </script>
</body>
</html>

출력:

jQuery attr 메서드로 확인란 비활성화

jQuery에서 .prop() 메서드를 사용하여 확인란 비활성화

prop() 메서드는 jQuery를 사용하여 확인란을 비활성화하는 또 다른 방법입니다. 즉, 첫 번째 예와 같이 disabled 특성을 사용하지 않습니다.

다음 코드에는 4개의 확인란이 있으며 3개는 기본적으로 비활성화되어 있습니다. 첫 번째 확인란을 클릭하면 나머지 항목이 활성화됩니다.

두 번째로 클릭하면 비활성화 상태로 돌아갑니다.

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>02-jQuery-disable-checkboxes</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 {
			outline: 2px solid #1a1a1a;
			width: 50%;
			margin: 0 auto;
			padding: 0.5em;
		}
		label {
			display: block;
			cursor: pointer;
			font-size: 1.2em;
		}
		[disabled] {
			cursor: not-allowed;
		}
		label:first-child:hover {
			background-color: #aaa;
		}
	</style>
</head>
<body>
	<main>
		<form id="algorithm-list">
			<label>
				<input type="checkbox" id="disable-all-checkboxes">Enable all options
			</label>
			<label>
				<input type="checkbox" class="algo"> Binary search
			</label>
			<label>
				<input type="checkbox" class="algo"> Merge Sort
			</label>
			<label>
				<input type="checkbox" class="algo"> Linked List
			</label>
		</form>
	</main>
	<script>
		$(function() {
			enable_all_checkboxes();
			$("#disable-all-checkboxes").click(enable_all_checkboxes);
		});

		function enable_all_checkboxes() {
			$("input.algo").prop("disabled", !this.checked);
		}
    </script>
</body>
</html>

출력:

jQuery prop 메서드로 확인란 비활성화

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 Checkbox