Hoe kan een selectievakje worden aan-/uitgevinkt met JavaScript?
Antwoord 1, autoriteit 100%
Javascript:
// Check
document.getElementById("checkbox").checked = true;
// Uncheck
document.getElementById("checkbox").checked = false;
jQuery (1.6+):
// Check
$("#checkbox").prop("checked", true);
// Uncheck
$("#checkbox").prop("checked", false);
jQuery (1.5-):
// Check
$("#checkbox").attr("checked", true);
// Uncheck
$("#checkbox").attr("checked", false);
Antwoord 2, autoriteit 14%
Belangrijk gedrag dat nog niet is genoemd:
Programmatisch instellen van het aangevinkteattribuut, activeert niet de change
gebeurtenis van het selectievakje.
Zie het zelf in deze viool:
http://jsfiddle.net/fjaeger/L9z9t04p/4/
(Fiddle getest in Chrome 46, Firefox 41 en IE 11)
De click()
-methode< /h1>
Op een dag merk je misschien dat je code schrijft, die afhankelijk is van de gebeurtenis die wordt afgevuurd. Om ervoor te zorgen dat de gebeurtenis wordt geactiveerd, roept u de methode click()
van het checkbox-element aan, als volgt:
document.getElementById('checkbox').click();
Dit schakelt echter de gecontroleerde status van het selectievakje in, in plaats van het specifiek in te stellen op true
of false
. Onthoud dat de gebeurtenis change
alleen moet worden geactiveerd als het aangevinkte attribuut daadwerkelijk verandert.
Het is ook van toepassing op de jQuery-manier: als u het kenmerk instelt met behulp van prop
of attr
, wordt de gebeurtenis change
niet geactiveerd.
checked
instellen op een specifieke waarde
U kunt het kenmerk checked
testen voordat u de methode click()
aanroept. Voorbeeld:
function toggle(checked) {
var elm = document.getElementById('checkbox');
if (checked != elm.checked) {
elm.click();
}
}
Lees hier meer over de klikmethode:
https://developer.mozilla.org/en-US/docs/Web/API/ HTMLElement/klik
Antwoord 3, autoriteit 3%
om te controleren:
document.getElementById("id-of-checkbox").checked = true;
om het vinkje weg te halen:
document.getElementById("id-of-checkbox").checked = false;
Antwoord 4, autoriteit 2%
We kunnen een selectievakje voor deeltjes aanvinken als,
$('id of the checkbox')[0].checked = true
en verwijder het vinkje door ,
$('id of the checkbox')[0].checked = false
Antwoord 5
Ik zou willen opmerken dat het instellen van het ‘checked’ attribuut op een niet-lege string leidt tot een aangevinkt vakje.
Dus als u het kenmerk ‘checked’ instelt op “false”, wordt het selectievakje aangevinkt. Ik moest de waarde instellen op de lege string, nullof de booleaanse waarde falseom er zeker van te zijn het selectievakje is niet aangevinkt.
Antwoord 6
Probeer dit:
//Check
document.getElementById('checkbox').setAttribute('checked', 'checked');
//UnCheck
document.getElementById('chk').removeAttribute('checked');
Antwoord 7
function setCheckboxValue(checkbox,value) {
if (checkbox.checked!=value)
checkbox.click();
}
Antwoord 8
<script type="text/javascript">
$(document).ready(function () {
$('.selecctall').click(function (event) {
if (this.checked) {
$('.checkbox1').each(function () {
this.checked = true;
});
} else {
$('.checkbox1').each(function () {
this.checked = false;
});
}
});
});
</script>
Antwoord 9
Als u om de een of andere reden geen .click()
op het checkbox-element, je kunt de waarde eenvoudig rechtstreeks wijzigen via de .checked-eigenschap (een IDL-kenmerkvan <input type="checkbox">
).
Houd er rekening meedat dit niet de normaal gerelateerde gebeurtenis activeert (wijzig), dus je moet het handmatig activeren om een complete oplossing te hebben die werkt met alle gerelateerde event-handlers.
Hier is een functioneel voorbeeld in raw javascript (ES6):
class ButtonCheck {
constructor() {
let ourCheckBox = null;
this.ourCheckBox = document.querySelector('#checkboxID');
let checkBoxButton = null;
this.checkBoxButton = document.querySelector('#checkboxID+button[aria-label="checkboxID"]');
let checkEvent = new Event('change');
this.checkBoxButton.addEventListener('click', function() {
let checkBox = this.ourCheckBox;
//toggle the checkbox: invert its state!
checkBox.checked = !checkBox.checked;
//let other things know the checkbox changed
checkBox.dispatchEvent(checkEvent);
}.bind(this), true);
this.eventHandler = function(e) {
document.querySelector('.checkboxfeedback').insertAdjacentHTML('beforeend', '<br />Event occurred on checkbox! Type: ' + e.type + ' checkbox state now: ' + this.ourCheckBox.checked);
}
//demonstration: we will see change events regardless of whether the checkbox is clicked or the button
this.ourCheckBox.addEventListener('change', function(e) {
this.eventHandler(e);
}.bind(this), true);
//demonstration: if we bind a click handler only to the checkbox, we only see clicks from the checkbox
this.ourCheckBox.addEventListener('click', function(e) {
this.eventHandler(e);
}.bind(this), true);
}
}
var init = function() {
const checkIt = new ButtonCheck();
}
if (document.readyState != 'loading') {
init;
} else {
document.addEventListener('DOMContentLoaded', init);
}
<input type="checkbox" id="checkboxID" />
<button aria-label="checkboxID">Change the checkbox!</button>
<div class="checkboxfeedback">No changes yet!</div>
Antwoord 10
Probeer een enkele controle
myCheckBox.checked=1
<input type="checkbox" id="myCheckBox"> Call to her
Antwoord 11
Ik ben het eens met de huidige antwoorden, maar in mijn geval werkt het niet, ik hoop dat deze code iemand in de toekomst kan helpen:
// check
$('#checkbox_id').click()
Antwoord 12
Vanilla js gebruiken:
//for one element:
document.querySelector('.myCheckBox').checked = true //will select the first matched element
document.querySelector('.myCheckBox').checked = false//will unselect the first matched element
//for multiple elements:
for (const checkbox of document.querySelectorAll('.myCheckBox')) {
//iterating over all matched elements
checkbox.checked = true //for selection
checkbox.checked = false //for unselection
}
Antwoord 13
vanilla (PHP) schakelt het selectievakje in en uit en slaat het resultaat op.
<?php
if($serverVariable=="checked")
$checked = "checked";
else
$checked = "";
?>
<input type="checkbox" name="deadline" value="yes" <?= $checked
?> >
# on server
<?php
if(isset($_POST['deadline']) and
$_POST['deadline']=='yes')
$serverVariable = checked;
else
$serverVariable = "";
?>