Kontrollkästchen in jQuery deaktivieren

Habdul Hazeez 15 Februar 2024
  1. Deaktivieren Sie Checkboxen mit der .attr()-Methode in jQuery
  2. Deaktivieren Sie Kontrollkästchen mit der .prop()-Methode in jQuery
Kontrollkästchen in jQuery deaktivieren

Um Checkboxen in jQuery zu deaktivieren, können Sie die jQuery-Methoden .attr() und prop() verwenden. In diesem Artikel erfahren Sie anhand von zwei detaillierten Beispielen, wie das geht.

Deaktivieren Sie Checkboxen mit der .attr()-Methode in jQuery

Um Checkboxen in Ihrem HTML-Formular zu deaktivieren, können Sie die Methode attr() verwenden, um jeder Checkbox ein disabled-Attribut hinzuzufügen. Um sie zu aktivieren, können Sie ein Click-Ereignis an ein anderes Kontrollkästchen anhängen.

Wenn Sie es also aktivieren, werden die verbleibenden Kontrollkästchen aktiviert. Gleichzeitig kehrt es in den Zustand deaktiviert zurück, wenn Sie es deaktivieren.

Der folgende Code zeigt Ihnen, wie es geht, und die Ergebnisse folgen.

<!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>

Ausgang:

Deaktivieren Sie Kontrollkästchen mit der jQuery-attr-Methode

Deaktivieren Sie Kontrollkästchen mit der .prop()-Methode in jQuery

Die Methode prop() ist eine weitere Möglichkeit, Checkboxen mit jQuery zu deaktivieren. Das bedeutet, dass Sie das Attribut disabled nicht verwenden, wie im ersten Beispiel gezeigt.

Im folgenden Code haben wir vier Kontrollkästchen und drei sind standardmäßig deaktiviert. Sie aktivieren die verbleibenden, wenn Sie auf das erste Kontrollkästchen klicken.

Sie kehren in den Zustand deaktiviert zurück, wenn Sie das zweite Mal darauf klicken.

<!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>

Ausgang:

Deaktivieren Sie Kontrollkästchen mit der jQuery-Prop-Methode

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

Verwandter Artikel - jQuery Checkbox