Reputation: 756
I am using angular 4 with integrated JQuery the form which contains drop down checkbox once the drop down field is selected should not be change even if I reload the page or until I re select.
dropdown.html:
<div class="chkdropdown">
Show and Hide Columns
<ul>
<li>
<input type="checkbox" class="hidecol" value="name" id="col_2" /> S NO
</li>
<li>
<input type="checkbox" class="hidecol" value="name" id="col_3" /> DrugName
</li>
<li>
<input type="checkbox" class="hidecol" value="salary" id="col_4" /> Generic Name
</li>
<li>
<input type="checkbox" class="hidecol" value="gender" id="col_5" /> Generic Combination
</li>
<li>
<input type="checkbox" class="hidecol" value="city" id="col_6" /> Dosage
</li>
<li>
<input type="checkbox" class="hidecol" value="email" id="col_7" /> VAT
</li>
</ul>
</div>
ang.component.ts:
$(document).ready(function(){
$(".hidecol").click(function(){
var id = this.id;
var splitid = id.split("_");
var colno = splitid[1];
var checked = true;
if($(this).is(":checked")){
checked = true;
}else{
checked = false;
}
setTimeout(function(){
if(checked){
$('#drug_table td:nth-child('+colno+')').hide();
$('#drug_table th:nth-child('+colno+')').hide();
} else{
$('#drug_table td:nth-child('+colno+')').show();
$('#drug_table th:nth-child('+colno+')').show();
}
}, 500);
});
});
Upvotes: 0
Views: 126
Reputation: 6548
ad this code in your jquery
$(document).ready(function(){
//here i checked localstorage values
var checkedvalues = JSON.parse(localStorage.getItem("checkedvalues"));
console.log(checkedvalues);
//created obj to store check values
var someObj={};
someObj.checked=[];
//looped through checkvalues from local storge ad add checked property to its values
$.each(checkedvalues, function(key, value) {
console.log(key,value);
$("#" + value).prop('checked', value);
console.log($("#" + value));
});
$(".hidecol").click(function(){
var id = this.id;
var splitid = id.split("_");
var colno = splitid[1];
var checked = true;
if($(this).is(":checked")){
checked = true;
//push chekced values in above created array.
someObj.checked.push($(this).attr("id"));
console.log(someObj.checked);
//add same values in local storage.
localStorage.setItem("checkedvalues", JSON.stringify(someObj.checked));
}else{
checked = false;
}
setTimeout(function(){
if(checked){
$('#drug_table td:nth-child('+colno+')').hide();
$('#drug_table th:nth-child('+colno+')').hide();
} else{
$('#drug_table td:nth-child('+colno+')').show();
$('#drug_table th:nth-child('+colno+')').show();
}
}, 500);
});
});
and this in html
<div class="chkdropdown">
Show and Hide Columns
<ul>
<li>
<input type="checkbox" class="hidecol" value="name" id="col_2" /> S NO
</li>
<li>
<input type="checkbox" class="hidecol" value="name" id="col_3" /> DrugName
</li>
<li>
<input type="checkbox" class="hidecol" value="salary" id="col_4" /> Generic Name
</li>
<li>
<input type="checkbox" class="hidecol" value="gender" id="col_5" /> Generic Combination
</li>
<li>
<input type="checkbox" class="hidecol" value="city" id="col_6" /> Dosage
</li>
<li>
<input type="checkbox" class="hidecol" value="email" id="col_7" /> VAT
</li>
</ul>
</div>
Upvotes: 1