Checkbox Check/uncheck Using D3
Solution 1:
Use property()
instead of attr()
:
function checkAll() {
d3.selectAll('input').property('checked', true);
}
function uncheckAll() {
d3.selectAll('input').property('checked', false);
}
From https://github.com/mbostock/d3/wiki/Selections#wiki-property:
Some HTML elements have special properties that are not addressable using standard attributes or styles. For example, form text fields have a
value
string property, and checkboxes have achecked
boolean property. You can use theproperty
operator to get or set these properties.
Solution 2:
Change your uncheckAll
function to set the checked
attributes to null
instead of false
:
function uncheckAll(){
d3.selectAll('input').attr('checked',null);
}
The checked attribute is either present, optionally set to checked="checked"
, or absent (no checked attribute at all). Setting it to null
will remove the attribute, in this case.
Solution 3:
What you need to do is update the checked value of the element as follows:
d3.selectAll("input").each(function(d){
if(d3.select(this).attr("type") == "checkbox")
d3.select(this).node().checked = true;
});
This will ensure only all checkbox states are changed
Solution 4:
You can limit your selection to only checkboxes by filtering the selection on the type attribute,
d3.selectAll("input[type=checkbox]").property("checked", true);
This avoids setting the checked attribute on non-checkbox inputs that are present.
Post a Comment for "Checkbox Check/uncheck Using D3"