Reputation: 783
I am using iCheck plugin for customizing checkboxes. I need to display certain text when one or more checkbox is checked and hide the text when none are checked.
The code I have currently displays the text on first click but doesn't hide it unless I click 2 more times. I have multiple checkboxes and would like to show text if one of 'em are checked else hide the text. Does anybody have any idea? The plugin has:
ifChecked
ifChanged
ifClicked
ifUnchecked
ifToggled
ifDisabled
ifEnabled.......
callbacks....Here is the plugin function
$('input').iCheck({
checkboxClass: 'icheckbox_square-blue',
radioClass: 'iradio_square-blue',
increaseArea: '20%' // optional
});
Here is what I tried..
$('input').on('ifChecked', function(event){
$(".hide").toggle();
});
html
<input type="checkbox">
<div class"hide" style="display:none">Hi there</div>
Upvotes: 60
Views: 176598
Reputation: 1198
If any one have any interest on multiple icheck(). Then you can go for it with the below one:
$("#mother_checkbox").on("ifChanged", function(){
if($(this).is(':checked')) {
$('.child_checkbox').prop('checked', true);
$('.child_checkbox').iCheck('update');
}
else{
$('.child_checkbox').prop('checked', false);
$('.child_checkbox').iCheck('update');
}
});
It will Check/Uncheck all the child checkbox. Good Day !
Upvotes: 2
Reputation: 188
Use this method:
$(document).on('ifChanged','SELECTOR', function(event){
alert(event.type + ' callback');
});
Upvotes: 1
Reputation: 4692
For those who struggle with this:
const value = $('SELECTOR').iCheck('update')[0].checked;
This directly returns true
or false
as boolean
.
Upvotes: 64
Reputation: 1085
$('input').on('ifChanged', function(event) {
if($(".checkbox").is(":checked")) {
$value = $(this).val();
}
else if($(".checkbox").is(":not(:checked)")) {
$value= $(this).val();
}
});
Upvotes: 1
Reputation: 392
Use following code to check if iCheck is checked or not using single method.
$('Selector').on('ifChanged', function(event){
//Check if checkbox is checked or not
var checkboxChecked = $(this).is(':checked');
if(checkboxChecked) {
alert("checked");
}else{
alert("un-checked");
}
});
Upvotes: 3
Reputation: 441
you can get value of checkbox and status by
$('.i-checks').on('ifChanged', function(event) {
alert('checked = ' + event.target.checked);
alert('value = ' + event.target.value);
});
Upvotes: 34
Reputation: 918
You could wrap all your checkboxes in a parent class and check the length of .checked
..
if( $('.your-parent-class').find('.checked').length ){
$(".hide").toggle();
}
Upvotes: 0
Reputation: 1435
this works for me... try it
// Check #x
$( "#x" ).prop( "checked", true );
// Uncheck #x
$( "#x" ).prop( "checked", false );
Upvotes: 0
Reputation: 1119
To know if the iCheck box is checked
var isChecked = $("#myicheckboxid").prop("checked");
Upvotes: 10
Reputation: 773
I wrote some simple thing:
When you initialize icheck
as:
$('input').iCheck({
checkboxClass: 'icheckbox_square-blue',
radioClass: 'iradio_square-blue',
increaseArea: '20%' // optional
});
Add this code under it:
$('input').on('ifChecked', function (event){
$(this).closest("input").attr('checked', true);
});
$('input').on('ifUnchecked', function (event) {
$(this).closest("input").attr('checked', false);
});
After this you can easily find your original checkbox's state.
I wrote this code for using icheck
in gridView
and accessed its state from server side by C#.
Simply find your checkBox from its id.
Upvotes: 7
Reputation: 5502
Use this code for iCheck:
$('.i-checks').iCheck({
checkboxClass: 'icheckbox_square-green',
radioClass: 'iradio_square-green',
}).on('ifChanged', function(e) {
// Get the field name
var isChecked = e.currentTarget.checked;
if (isChecked == true) {
}
});
Upvotes: 6
Reputation: 12691
Check this :
var checked = $(".myCheckbox").parent('[class*="icheckbox"]').hasClass("checked");
if(checked) {
//do stuff
}
Upvotes: 21
Reputation: 361
Call
element.iCheck('update');
To get the updated markup on the element
Upvotes: 3
Reputation: 6694
All callbacks and functions are documented here: http://fronteed.com/iCheck/#usage
$('input').iCheck('check'); — change input's state to checked
$('input').iCheck('uncheck'); — remove checked state
$('input').iCheck('toggle'); — toggle checked state
$('input').iCheck('disable'); — change input's state to disabled
$('input').iCheck('enable'); — remove disabled state
$('input').iCheck('indeterminate'); — change input's state to indeterminate
$('input').iCheck('determinate'); — remove indeterminate state
$('input').iCheck('update'); — apply input changes, which were done outside the plugin
$('input').iCheck('destroy'); — remove all traces of iCheck
Upvotes: 15
Reputation: 231
You just need to use the callbacks, from the documentation: https://github.com/fronteed/iCheck#callbacks
$('input').on('ifChecked', function(event){
alert(event.type + ' callback');
});
Upvotes: 13