Angularjs conflicts with iCheck jquery and not able fetch data from radio button












1















Angularjs conflicts with iCheck jquery and not able fetch data from radio button
When I write this statement, it perfectly works fine. I am able to fetch the data using Angular JS 6.



<input type="radio" ng-model="gradesForm.status" name="r1" value="inactive"> 


But, when I include the css class (class="minimal" ), it stops fetching the data.



<input type="radio" ng-model="gradesForm.status" name="r1" class="minimal" value="inactive"> 


ng-model not working



The java script function is



      //iCheck for checkbox and radio inputs
$('input[type="checkbox"].minimal, input[type="radio"].minimal')
.iCheck({
checkboxClass: 'icheckbox_minimal-blue',
radioClass: 'iradio_minimal-blue'
})


icheck.js



/*!
* iCheck v1.0.1, http://git.io/arlzeA
* =================================
* Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization
*
* (c) 2013 Damir Sultanov, http://fronteed.com
* MIT Licensed
*/

(function($) {

// Cached vars
var _iCheck = 'iCheck',
_iCheckHelper = _iCheck + '-helper',
_checkbox = 'checkbox',
_radio = 'radio',
_checked = 'checked',
_unchecked = 'un' + _checked,
_disabled = 'disabled',
_determinate = 'determinate',
_indeterminate = 'in' + _determinate,
_update = 'update',
_type = 'type',
_click = 'click',
_touch = 'touchbegin.i touchend.i',
_add = 'addClass',
_remove = 'removeClass',
_callback = 'trigger',
_label = 'label',
_cursor = 'cursor',
_mobile = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);

// Plugin init
$.fn[_iCheck] = function(options, fire) {

// Walker
var handle = 'input[type="' + _checkbox + '"], input[type="' + _radio + '"]',
stack = $(),
walker = function(object) {
object.each(function() {
var self = $(this);

if (self.is(handle)) {
stack = stack.add(self);
} else {
stack = stack.add(self.find(handle));
}
});
};

// Check if we should operate with some method
if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(options)) {

// Normalize method's name
options = options.toLowerCase();

// Find checkboxes and radio buttons
walker(this);

return stack.each(function() {
var self = $(this);

if (options == 'destroy') {
tidy(self, 'ifDestroyed');
} else {
operate(self, true, options);
}
// Fire method's callback
if ($.isFunction(fire)) {
fire();
}
});

// Customization
} else if (typeof options == 'object' || !options) {

// Check if any options were passed
var settings = $.extend({
checkedClass: _checked,
disabledClass: _disabled,
indeterminateClass: _indeterminate,
labelHover: true,
aria: false
}, options),

selector = settings.handle,
hoverClass = settings.hoverClass || 'hover',
focusClass = settings.focusClass || 'focus',
activeClass = settings.activeClass || 'active',
labelHover = !!settings.labelHover,
labelHoverClass = settings.labelHoverClass || 'hover',

// Setup clickable area
area = ('' + settings.increaseArea).replace('%', '') | 0;

// Selector limit
if (selector == _checkbox || selector == _radio) {
handle = 'input[type="' + selector + '"]';
}
// Clickable area limit
if (area < -50) {
area = -50;
}
// Walk around the selector
walker(this);

return stack.each(function() {
var self = $(this);

// If already customized
tidy(self);

var node = this,
id = node.id,

// Layer styles
offset = -area + '%',
size = 100 + (area * 2) + '%',
layer = {
position: 'absolute',
top: offset,
left: offset,
display: 'block',
width: size,
height: size,
margin: 0,
padding: 0,
background: '#fff',
border: 0,
opacity: 0
},

// Choose how to hide input
hide = _mobile ? {
position: 'absolute',
visibility: 'hidden'
} : area ? layer : {
position: 'absolute',
opacity: 0
},

// Get proper class
className = node[_type] == _checkbox ? settings.checkboxClass || 'i' + _checkbox : settings.radioClass || 'i' + _radio,

// Find assigned labels
label = $(_label + '[for="' + id + '"]').add(self.closest(_label)),

// Check ARIA option
aria = !!settings.aria,

// Set ARIA placeholder
ariaID = _iCheck + '-' + Math.random().toString(36).replace('0.', ''),

// Parent & helper
parent = '<div class="' + className + '" ' + (aria ? 'role="' + node[_type] + '" ' : ''),
helper;

// Set ARIA "labelledby"
if (label.length && aria) {
label.each(function() {
parent += 'aria-labelledby="';

if (this.id) {
parent += this.id;
} else {
this.id = ariaID;
parent += ariaID;
}

parent += '"';
});
}
// Wrap input
parent = self.wrap(parent + '/>')[_callback]('ifCreated').parent().append(settings.insert);

// Layer addition
helper = $('<ins class="' + _iCheckHelper + '"/>').css(layer).appendTo(parent);

// Finalize customization
self.data(_iCheck, {o: settings, s: self.attr('style')}).css(hide);
!!settings.inheritClass && parent[_add](node.className || '');
!!settings.inheritID && id && parent.attr('id', _iCheck + '-' + id);
parent.css('position') == 'static' && parent.css('position', 'relative');
operate(self, true, _update);

// Label events
if (label.length) {
label.on(_click + '.i mouseover.i mouseout.i ' + _touch, function(event) {
var type = event[_type],
item = $(this);

// Do nothing if input is disabled
if (!node[_disabled]) {

// Click
if (type == _click) {
if ($(event.target).is('a')) {
return;
}
operate(self, false, true);

// Hover state
} else if (labelHover) {

// mouseout|touchend
if (/ut|nd/.test(type)) {
parent[_remove](hoverClass);
item[_remove](labelHoverClass);
} else {
parent[_add](hoverClass);
item[_add](labelHoverClass);
}
}
if (_mobile) {
event.stopPropagation();
} else {
return false;
}
}
});
}
// Input events
self.on(_click + '.i focus.i blur.i keyup.i keydown.i keypress.i', function(event) {
var type = event[_type],
key = event.keyCode;

// Click
if (type == _click) {
return false;

// Keydown
} else if (type == 'keydown' && key == 32) {
if (!(node[_type] == _radio && node[_checked])) {
if (node[_checked]) {
off(self, _checked);
} else {
on(self, _checked);
}
}
return false;

// Keyup
} else if (type == 'keyup' && node[_type] == _radio) {
!node[_checked] && on(self, _checked);

// Focus/blur
} else if (/us|ur/.test(type)) {
parent[type == 'blur' ? _remove : _add](focusClass);
}
});

// Helper events
helper.on(_click + ' mousedown mouseup mouseover mouseout ' + _touch, function(event) {
var type = event[_type],

// mousedown|mouseup
toggle = /wn|up/.test(type) ? activeClass : hoverClass;

// Do nothing if input is disabled
if (!node[_disabled]) {

// Click
if (type == _click) {
operate(self, false, true);

// Active and hover states
} else {

// State is on
if (/wn|er|in/.test(type)) {

// mousedown|mouseover|touchbegin
parent[_add](toggle);

// State is off
} else {
parent[_remove](toggle + ' ' + activeClass);
}
// Label hover
if (label.length && labelHover && toggle == hoverClass) {

// mouseout|touchend
label[/ut|nd/.test(type) ? _remove : _add](labelHoverClass);
}
}
if (_mobile) {
event.stopPropagation();
} else {
return false;
}
}
});
});
} else {
return this;
}
};

// Do something with inputs
function operate(input, direct, method) {
var node = input[0],
state = /er/.test(method) ? _indeterminate : /bl/.test(method) ? _disabled : _checked,
active = method == _update ? {
checked: node[_checked],
disabled: node[_disabled],
indeterminate: input.attr(_indeterminate) == 'true' || input.attr(_determinate) == 'false'
} : node[state];

// Check, disable or indeterminate
if (/^(ch|di|in)/.test(method) && !active) {
on(input, state);

// Uncheck, enable or determinate
} else if (/^(un|en|de)/.test(method) && active) {
off(input, state);

// Update
} else if (method == _update) {

// Handle states
for (var state in active) {
if (active[state]) {
on(input, state, true);
} else {
off(input, state, true);
}
}
} else if (!direct || method == 'toggle') {

// Helper or label was clicked
if (!direct) {
input[_callback]('ifClicked');
}
// Toggle checked state
if (active) {
if (node[_type] !== _radio) {
off(input, state);
}
} else {
on(input, state);
}
}
}
// Add checked, disabled or indeterminate state
function on(input, state, keep) {
var node = input[0],
parent = input.parent(),
checked = state == _checked,
indeterminate = state == _indeterminate,
disabled = state == _disabled,
callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',
regular = option(input, callback + capitalize(node[_type])),
specific = option(input, state + capitalize(node[_type]));

// Prevent unnecessary actions
if (node[state] !== true) {

// Toggle assigned radio buttons
if (!keep && state == _checked && node[_type] == _radio && node.name) {
var form = input.closest('form'),
inputs = 'input[name="' + node.name + '"]';

inputs = form.length ? form.find(inputs) : $(inputs);

inputs.each(function() {
if (this !== node && $(this).data(_iCheck)) {
off($(this), state);
}
});
}
// Indeterminate state
if (indeterminate) {

// Add indeterminate state
node[state] = true;

// Remove checked state
if (node[_checked]) {
off(input, _checked, 'force');
}
// Checked or disabled state
} else {

// Add checked or disabled state
if (!keep) {
node[state] = true;
}
// Remove indeterminate state
if (checked && node[_indeterminate]) {
off(input, _indeterminate, false);
}
}
// Trigger callbacks
callbacks(input, checked, state, keep);
}
// Add proper cursor
if (node[_disabled] && !!option(input, _cursor, true)) {
parent.find('.' + _iCheckHelper).css(_cursor, 'default');
}
// Add state class
parent[_add](specific || option(input, state) || '');

// Set ARIA attribute
disabled ? parent.attr('aria-disabled', 'true') : parent.attr('aria-checked', indeterminate ? 'mixed' : 'true');

// Remove regular state class
parent[_remove](regular || option(input, callback) || '');
}
// Remove checked, disabled or indeterminate state
function off(input, state, keep) {
var node = input[0],
parent = input.parent(),
checked = state == _checked,
indeterminate = state == _indeterminate,
disabled = state == _disabled,
callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',
regular = option(input, callback + capitalize(node[_type])),
specific = option(input, state + capitalize(node[_type]));

// Prevent unnecessary actions
if (node[state] !== false) {

// Toggle state
if (indeterminate || !keep || keep == 'force') {
node[state] = false;
}
// Trigger callbacks
callbacks(input, checked, callback, keep);
}
// Add proper cursor
if (!node[_disabled] && !!option(input, _cursor, true)) {
parent.find('.' + _iCheckHelper).css(_cursor, 'pointer');
}
// Remove state class
parent[_remove](specific || option(input, state) || '');

// Set ARIA attribute
disabled ? parent.attr('aria-disabled', 'false') : parent.attr('aria-checked', 'false');

// Add regular state class
parent[_add](regular || option(input, callback) || '');
}
// Remove all traces
function tidy(input, callback) {
if (input.data(_iCheck)) {

// Remove everything except input
input.parent().html(input.attr('style', input.data(_iCheck).s || ''));

// Callback
if (callback) {
input[_callback](callback);
}
// Unbind events
input.off('.i').unwrap();
$(_label + '[for="' + input[0].id + '"]').add(input.closest(_label)).off('.i');
}
}
// Get some option
function option(input, state, regular) {
if (input.data(_iCheck)) {
return input.data(_iCheck).o[state + (regular ? '' : 'Class')];
}
}
// Capitalize some string
function capitalize(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
// Executable handlers
function callbacks(input, checked, callback, keep) {
if (!keep) {
if (checked) {
input[_callback]('ifToggled');
}
input[_callback]('ifChanged')[_callback]('if' + capitalize(callback));
}
}
})(window.jQuery || window.Zepto);


minimal.css



   /* iCheck plugin Minimal skin, black
----------------------------------- */
.icheckbox_minimal,
.iradio_minimal {
display: inline-block;
*display: inline;
vertical-align: middle;
margin: 0;
padding: 0;
width: 18px;
height: 18px;
background: url(minimal.png) no-repeat;
border: none;
cursor: pointer;
}

.icheckbox_minimal {
background-position: 0 0;
}
.icheckbox_minimal.hover {
background-position: -20px 0;
}
.icheckbox_minimal.checked {
background-position: -40px 0;
}
.icheckbox_minimal.disabled {
background-position: -60px 0;
cursor: default;
}
.icheckbox_minimal.checked.disabled {
background-position: -80px 0;
}

.iradio_minimal {
background-position: -100px 0;
}
.iradio_minimal.hover {
background-position: -120px 0;
}
.iradio_minimal.checked {
background-position: -140px 0;
}
.iradio_minimal.disabled {
background-position: -160px 0;
cursor: default;
}
.iradio_minimal.checked.disabled {
background-position: -180px 0;
}

/* Retina support */
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (-moz-min-device-pixel-ratio: 1.5),
only screen and (-o-min-device-pixel-ratio: 3/2),
only screen and (min-device-pixel-ratio: 1.5) {
.icheckbox_minimal,
.iradio_minimal {
background-image: url(minimal@2x.png);
-webkit-background-size: 200px 20px;
background-size: 200px 20px;
}
}


blue.css



/* iCheck plugin Minimal skin, blue
----------------------------------- */
.icheckbox_minimal-blue,
.iradio_minimal-blue {
display: inline-block;
*display: inline;
vertical-align: middle;
margin: 0;
padding: 0;
width: 18px;
height: 18px;
background: url(blue.png) no-repeat;
border: none;
cursor: pointer;
}

.icheckbox_minimal-blue {
background-position: 0 0;
}
.icheckbox_minimal-blue.hover {
background-position: -20px 0;
}
.icheckbox_minimal-blue.checked {
background-position: -40px 0;
}
.icheckbox_minimal-blue.disabled {
background-position: -60px 0;
cursor: default;
}
.icheckbox_minimal-blue.checked.disabled {
background-position: -80px 0;
}

.iradio_minimal-blue {
background-position: -100px 0;
}
.iradio_minimal-blue.hover {
background-position: -120px 0;
}
.iradio_minimal-blue.checked {
background-position: -140px 0;
}
.iradio_minimal-blue.disabled {
background-position: -160px 0;
cursor: default;
}
.iradio_minimal-blue.checked.disabled {
background-position: -180px 0;
}

/* Retina support */
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (-moz-min-device-pixel-ratio: 1.5),
only screen and (-o-min-device-pixel-ratio: 3/2),
only screen and (min-device-pixel-ratio: 1.5) {
.icheckbox_minimal-blue,
.iradio_minimal-blue {
background-image: url(blue@2x.png);
-webkit-background-size: 200px 20px;
background-size: 200px 20px;
}
}









share|improve this question





























    1















    Angularjs conflicts with iCheck jquery and not able fetch data from radio button
    When I write this statement, it perfectly works fine. I am able to fetch the data using Angular JS 6.



    <input type="radio" ng-model="gradesForm.status" name="r1" value="inactive"> 


    But, when I include the css class (class="minimal" ), it stops fetching the data.



    <input type="radio" ng-model="gradesForm.status" name="r1" class="minimal" value="inactive"> 


    ng-model not working



    The java script function is



          //iCheck for checkbox and radio inputs
    $('input[type="checkbox"].minimal, input[type="radio"].minimal')
    .iCheck({
    checkboxClass: 'icheckbox_minimal-blue',
    radioClass: 'iradio_minimal-blue'
    })


    icheck.js



    /*!
    * iCheck v1.0.1, http://git.io/arlzeA
    * =================================
    * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization
    *
    * (c) 2013 Damir Sultanov, http://fronteed.com
    * MIT Licensed
    */

    (function($) {

    // Cached vars
    var _iCheck = 'iCheck',
    _iCheckHelper = _iCheck + '-helper',
    _checkbox = 'checkbox',
    _radio = 'radio',
    _checked = 'checked',
    _unchecked = 'un' + _checked,
    _disabled = 'disabled',
    _determinate = 'determinate',
    _indeterminate = 'in' + _determinate,
    _update = 'update',
    _type = 'type',
    _click = 'click',
    _touch = 'touchbegin.i touchend.i',
    _add = 'addClass',
    _remove = 'removeClass',
    _callback = 'trigger',
    _label = 'label',
    _cursor = 'cursor',
    _mobile = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);

    // Plugin init
    $.fn[_iCheck] = function(options, fire) {

    // Walker
    var handle = 'input[type="' + _checkbox + '"], input[type="' + _radio + '"]',
    stack = $(),
    walker = function(object) {
    object.each(function() {
    var self = $(this);

    if (self.is(handle)) {
    stack = stack.add(self);
    } else {
    stack = stack.add(self.find(handle));
    }
    });
    };

    // Check if we should operate with some method
    if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(options)) {

    // Normalize method's name
    options = options.toLowerCase();

    // Find checkboxes and radio buttons
    walker(this);

    return stack.each(function() {
    var self = $(this);

    if (options == 'destroy') {
    tidy(self, 'ifDestroyed');
    } else {
    operate(self, true, options);
    }
    // Fire method's callback
    if ($.isFunction(fire)) {
    fire();
    }
    });

    // Customization
    } else if (typeof options == 'object' || !options) {

    // Check if any options were passed
    var settings = $.extend({
    checkedClass: _checked,
    disabledClass: _disabled,
    indeterminateClass: _indeterminate,
    labelHover: true,
    aria: false
    }, options),

    selector = settings.handle,
    hoverClass = settings.hoverClass || 'hover',
    focusClass = settings.focusClass || 'focus',
    activeClass = settings.activeClass || 'active',
    labelHover = !!settings.labelHover,
    labelHoverClass = settings.labelHoverClass || 'hover',

    // Setup clickable area
    area = ('' + settings.increaseArea).replace('%', '') | 0;

    // Selector limit
    if (selector == _checkbox || selector == _radio) {
    handle = 'input[type="' + selector + '"]';
    }
    // Clickable area limit
    if (area < -50) {
    area = -50;
    }
    // Walk around the selector
    walker(this);

    return stack.each(function() {
    var self = $(this);

    // If already customized
    tidy(self);

    var node = this,
    id = node.id,

    // Layer styles
    offset = -area + '%',
    size = 100 + (area * 2) + '%',
    layer = {
    position: 'absolute',
    top: offset,
    left: offset,
    display: 'block',
    width: size,
    height: size,
    margin: 0,
    padding: 0,
    background: '#fff',
    border: 0,
    opacity: 0
    },

    // Choose how to hide input
    hide = _mobile ? {
    position: 'absolute',
    visibility: 'hidden'
    } : area ? layer : {
    position: 'absolute',
    opacity: 0
    },

    // Get proper class
    className = node[_type] == _checkbox ? settings.checkboxClass || 'i' + _checkbox : settings.radioClass || 'i' + _radio,

    // Find assigned labels
    label = $(_label + '[for="' + id + '"]').add(self.closest(_label)),

    // Check ARIA option
    aria = !!settings.aria,

    // Set ARIA placeholder
    ariaID = _iCheck + '-' + Math.random().toString(36).replace('0.', ''),

    // Parent & helper
    parent = '<div class="' + className + '" ' + (aria ? 'role="' + node[_type] + '" ' : ''),
    helper;

    // Set ARIA "labelledby"
    if (label.length && aria) {
    label.each(function() {
    parent += 'aria-labelledby="';

    if (this.id) {
    parent += this.id;
    } else {
    this.id = ariaID;
    parent += ariaID;
    }

    parent += '"';
    });
    }
    // Wrap input
    parent = self.wrap(parent + '/>')[_callback]('ifCreated').parent().append(settings.insert);

    // Layer addition
    helper = $('<ins class="' + _iCheckHelper + '"/>').css(layer).appendTo(parent);

    // Finalize customization
    self.data(_iCheck, {o: settings, s: self.attr('style')}).css(hide);
    !!settings.inheritClass && parent[_add](node.className || '');
    !!settings.inheritID && id && parent.attr('id', _iCheck + '-' + id);
    parent.css('position') == 'static' && parent.css('position', 'relative');
    operate(self, true, _update);

    // Label events
    if (label.length) {
    label.on(_click + '.i mouseover.i mouseout.i ' + _touch, function(event) {
    var type = event[_type],
    item = $(this);

    // Do nothing if input is disabled
    if (!node[_disabled]) {

    // Click
    if (type == _click) {
    if ($(event.target).is('a')) {
    return;
    }
    operate(self, false, true);

    // Hover state
    } else if (labelHover) {

    // mouseout|touchend
    if (/ut|nd/.test(type)) {
    parent[_remove](hoverClass);
    item[_remove](labelHoverClass);
    } else {
    parent[_add](hoverClass);
    item[_add](labelHoverClass);
    }
    }
    if (_mobile) {
    event.stopPropagation();
    } else {
    return false;
    }
    }
    });
    }
    // Input events
    self.on(_click + '.i focus.i blur.i keyup.i keydown.i keypress.i', function(event) {
    var type = event[_type],
    key = event.keyCode;

    // Click
    if (type == _click) {
    return false;

    // Keydown
    } else if (type == 'keydown' && key == 32) {
    if (!(node[_type] == _radio && node[_checked])) {
    if (node[_checked]) {
    off(self, _checked);
    } else {
    on(self, _checked);
    }
    }
    return false;

    // Keyup
    } else if (type == 'keyup' && node[_type] == _radio) {
    !node[_checked] && on(self, _checked);

    // Focus/blur
    } else if (/us|ur/.test(type)) {
    parent[type == 'blur' ? _remove : _add](focusClass);
    }
    });

    // Helper events
    helper.on(_click + ' mousedown mouseup mouseover mouseout ' + _touch, function(event) {
    var type = event[_type],

    // mousedown|mouseup
    toggle = /wn|up/.test(type) ? activeClass : hoverClass;

    // Do nothing if input is disabled
    if (!node[_disabled]) {

    // Click
    if (type == _click) {
    operate(self, false, true);

    // Active and hover states
    } else {

    // State is on
    if (/wn|er|in/.test(type)) {

    // mousedown|mouseover|touchbegin
    parent[_add](toggle);

    // State is off
    } else {
    parent[_remove](toggle + ' ' + activeClass);
    }
    // Label hover
    if (label.length && labelHover && toggle == hoverClass) {

    // mouseout|touchend
    label[/ut|nd/.test(type) ? _remove : _add](labelHoverClass);
    }
    }
    if (_mobile) {
    event.stopPropagation();
    } else {
    return false;
    }
    }
    });
    });
    } else {
    return this;
    }
    };

    // Do something with inputs
    function operate(input, direct, method) {
    var node = input[0],
    state = /er/.test(method) ? _indeterminate : /bl/.test(method) ? _disabled : _checked,
    active = method == _update ? {
    checked: node[_checked],
    disabled: node[_disabled],
    indeterminate: input.attr(_indeterminate) == 'true' || input.attr(_determinate) == 'false'
    } : node[state];

    // Check, disable or indeterminate
    if (/^(ch|di|in)/.test(method) && !active) {
    on(input, state);

    // Uncheck, enable or determinate
    } else if (/^(un|en|de)/.test(method) && active) {
    off(input, state);

    // Update
    } else if (method == _update) {

    // Handle states
    for (var state in active) {
    if (active[state]) {
    on(input, state, true);
    } else {
    off(input, state, true);
    }
    }
    } else if (!direct || method == 'toggle') {

    // Helper or label was clicked
    if (!direct) {
    input[_callback]('ifClicked');
    }
    // Toggle checked state
    if (active) {
    if (node[_type] !== _radio) {
    off(input, state);
    }
    } else {
    on(input, state);
    }
    }
    }
    // Add checked, disabled or indeterminate state
    function on(input, state, keep) {
    var node = input[0],
    parent = input.parent(),
    checked = state == _checked,
    indeterminate = state == _indeterminate,
    disabled = state == _disabled,
    callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',
    regular = option(input, callback + capitalize(node[_type])),
    specific = option(input, state + capitalize(node[_type]));

    // Prevent unnecessary actions
    if (node[state] !== true) {

    // Toggle assigned radio buttons
    if (!keep && state == _checked && node[_type] == _radio && node.name) {
    var form = input.closest('form'),
    inputs = 'input[name="' + node.name + '"]';

    inputs = form.length ? form.find(inputs) : $(inputs);

    inputs.each(function() {
    if (this !== node && $(this).data(_iCheck)) {
    off($(this), state);
    }
    });
    }
    // Indeterminate state
    if (indeterminate) {

    // Add indeterminate state
    node[state] = true;

    // Remove checked state
    if (node[_checked]) {
    off(input, _checked, 'force');
    }
    // Checked or disabled state
    } else {

    // Add checked or disabled state
    if (!keep) {
    node[state] = true;
    }
    // Remove indeterminate state
    if (checked && node[_indeterminate]) {
    off(input, _indeterminate, false);
    }
    }
    // Trigger callbacks
    callbacks(input, checked, state, keep);
    }
    // Add proper cursor
    if (node[_disabled] && !!option(input, _cursor, true)) {
    parent.find('.' + _iCheckHelper).css(_cursor, 'default');
    }
    // Add state class
    parent[_add](specific || option(input, state) || '');

    // Set ARIA attribute
    disabled ? parent.attr('aria-disabled', 'true') : parent.attr('aria-checked', indeterminate ? 'mixed' : 'true');

    // Remove regular state class
    parent[_remove](regular || option(input, callback) || '');
    }
    // Remove checked, disabled or indeterminate state
    function off(input, state, keep) {
    var node = input[0],
    parent = input.parent(),
    checked = state == _checked,
    indeterminate = state == _indeterminate,
    disabled = state == _disabled,
    callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',
    regular = option(input, callback + capitalize(node[_type])),
    specific = option(input, state + capitalize(node[_type]));

    // Prevent unnecessary actions
    if (node[state] !== false) {

    // Toggle state
    if (indeterminate || !keep || keep == 'force') {
    node[state] = false;
    }
    // Trigger callbacks
    callbacks(input, checked, callback, keep);
    }
    // Add proper cursor
    if (!node[_disabled] && !!option(input, _cursor, true)) {
    parent.find('.' + _iCheckHelper).css(_cursor, 'pointer');
    }
    // Remove state class
    parent[_remove](specific || option(input, state) || '');

    // Set ARIA attribute
    disabled ? parent.attr('aria-disabled', 'false') : parent.attr('aria-checked', 'false');

    // Add regular state class
    parent[_add](regular || option(input, callback) || '');
    }
    // Remove all traces
    function tidy(input, callback) {
    if (input.data(_iCheck)) {

    // Remove everything except input
    input.parent().html(input.attr('style', input.data(_iCheck).s || ''));

    // Callback
    if (callback) {
    input[_callback](callback);
    }
    // Unbind events
    input.off('.i').unwrap();
    $(_label + '[for="' + input[0].id + '"]').add(input.closest(_label)).off('.i');
    }
    }
    // Get some option
    function option(input, state, regular) {
    if (input.data(_iCheck)) {
    return input.data(_iCheck).o[state + (regular ? '' : 'Class')];
    }
    }
    // Capitalize some string
    function capitalize(string) {
    return string.charAt(0).toUpperCase() + string.slice(1);
    }
    // Executable handlers
    function callbacks(input, checked, callback, keep) {
    if (!keep) {
    if (checked) {
    input[_callback]('ifToggled');
    }
    input[_callback]('ifChanged')[_callback]('if' + capitalize(callback));
    }
    }
    })(window.jQuery || window.Zepto);


    minimal.css



       /* iCheck plugin Minimal skin, black
    ----------------------------------- */
    .icheckbox_minimal,
    .iradio_minimal {
    display: inline-block;
    *display: inline;
    vertical-align: middle;
    margin: 0;
    padding: 0;
    width: 18px;
    height: 18px;
    background: url(minimal.png) no-repeat;
    border: none;
    cursor: pointer;
    }

    .icheckbox_minimal {
    background-position: 0 0;
    }
    .icheckbox_minimal.hover {
    background-position: -20px 0;
    }
    .icheckbox_minimal.checked {
    background-position: -40px 0;
    }
    .icheckbox_minimal.disabled {
    background-position: -60px 0;
    cursor: default;
    }
    .icheckbox_minimal.checked.disabled {
    background-position: -80px 0;
    }

    .iradio_minimal {
    background-position: -100px 0;
    }
    .iradio_minimal.hover {
    background-position: -120px 0;
    }
    .iradio_minimal.checked {
    background-position: -140px 0;
    }
    .iradio_minimal.disabled {
    background-position: -160px 0;
    cursor: default;
    }
    .iradio_minimal.checked.disabled {
    background-position: -180px 0;
    }

    /* Retina support */
    @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
    only screen and (-moz-min-device-pixel-ratio: 1.5),
    only screen and (-o-min-device-pixel-ratio: 3/2),
    only screen and (min-device-pixel-ratio: 1.5) {
    .icheckbox_minimal,
    .iradio_minimal {
    background-image: url(minimal@2x.png);
    -webkit-background-size: 200px 20px;
    background-size: 200px 20px;
    }
    }


    blue.css



    /* iCheck plugin Minimal skin, blue
    ----------------------------------- */
    .icheckbox_minimal-blue,
    .iradio_minimal-blue {
    display: inline-block;
    *display: inline;
    vertical-align: middle;
    margin: 0;
    padding: 0;
    width: 18px;
    height: 18px;
    background: url(blue.png) no-repeat;
    border: none;
    cursor: pointer;
    }

    .icheckbox_minimal-blue {
    background-position: 0 0;
    }
    .icheckbox_minimal-blue.hover {
    background-position: -20px 0;
    }
    .icheckbox_minimal-blue.checked {
    background-position: -40px 0;
    }
    .icheckbox_minimal-blue.disabled {
    background-position: -60px 0;
    cursor: default;
    }
    .icheckbox_minimal-blue.checked.disabled {
    background-position: -80px 0;
    }

    .iradio_minimal-blue {
    background-position: -100px 0;
    }
    .iradio_minimal-blue.hover {
    background-position: -120px 0;
    }
    .iradio_minimal-blue.checked {
    background-position: -140px 0;
    }
    .iradio_minimal-blue.disabled {
    background-position: -160px 0;
    cursor: default;
    }
    .iradio_minimal-blue.checked.disabled {
    background-position: -180px 0;
    }

    /* Retina support */
    @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
    only screen and (-moz-min-device-pixel-ratio: 1.5),
    only screen and (-o-min-device-pixel-ratio: 3/2),
    only screen and (min-device-pixel-ratio: 1.5) {
    .icheckbox_minimal-blue,
    .iradio_minimal-blue {
    background-image: url(blue@2x.png);
    -webkit-background-size: 200px 20px;
    background-size: 200px 20px;
    }
    }









    share|improve this question



























      1












      1








      1








      Angularjs conflicts with iCheck jquery and not able fetch data from radio button
      When I write this statement, it perfectly works fine. I am able to fetch the data using Angular JS 6.



      <input type="radio" ng-model="gradesForm.status" name="r1" value="inactive"> 


      But, when I include the css class (class="minimal" ), it stops fetching the data.



      <input type="radio" ng-model="gradesForm.status" name="r1" class="minimal" value="inactive"> 


      ng-model not working



      The java script function is



            //iCheck for checkbox and radio inputs
      $('input[type="checkbox"].minimal, input[type="radio"].minimal')
      .iCheck({
      checkboxClass: 'icheckbox_minimal-blue',
      radioClass: 'iradio_minimal-blue'
      })


      icheck.js



      /*!
      * iCheck v1.0.1, http://git.io/arlzeA
      * =================================
      * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization
      *
      * (c) 2013 Damir Sultanov, http://fronteed.com
      * MIT Licensed
      */

      (function($) {

      // Cached vars
      var _iCheck = 'iCheck',
      _iCheckHelper = _iCheck + '-helper',
      _checkbox = 'checkbox',
      _radio = 'radio',
      _checked = 'checked',
      _unchecked = 'un' + _checked,
      _disabled = 'disabled',
      _determinate = 'determinate',
      _indeterminate = 'in' + _determinate,
      _update = 'update',
      _type = 'type',
      _click = 'click',
      _touch = 'touchbegin.i touchend.i',
      _add = 'addClass',
      _remove = 'removeClass',
      _callback = 'trigger',
      _label = 'label',
      _cursor = 'cursor',
      _mobile = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);

      // Plugin init
      $.fn[_iCheck] = function(options, fire) {

      // Walker
      var handle = 'input[type="' + _checkbox + '"], input[type="' + _radio + '"]',
      stack = $(),
      walker = function(object) {
      object.each(function() {
      var self = $(this);

      if (self.is(handle)) {
      stack = stack.add(self);
      } else {
      stack = stack.add(self.find(handle));
      }
      });
      };

      // Check if we should operate with some method
      if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(options)) {

      // Normalize method's name
      options = options.toLowerCase();

      // Find checkboxes and radio buttons
      walker(this);

      return stack.each(function() {
      var self = $(this);

      if (options == 'destroy') {
      tidy(self, 'ifDestroyed');
      } else {
      operate(self, true, options);
      }
      // Fire method's callback
      if ($.isFunction(fire)) {
      fire();
      }
      });

      // Customization
      } else if (typeof options == 'object' || !options) {

      // Check if any options were passed
      var settings = $.extend({
      checkedClass: _checked,
      disabledClass: _disabled,
      indeterminateClass: _indeterminate,
      labelHover: true,
      aria: false
      }, options),

      selector = settings.handle,
      hoverClass = settings.hoverClass || 'hover',
      focusClass = settings.focusClass || 'focus',
      activeClass = settings.activeClass || 'active',
      labelHover = !!settings.labelHover,
      labelHoverClass = settings.labelHoverClass || 'hover',

      // Setup clickable area
      area = ('' + settings.increaseArea).replace('%', '') | 0;

      // Selector limit
      if (selector == _checkbox || selector == _radio) {
      handle = 'input[type="' + selector + '"]';
      }
      // Clickable area limit
      if (area < -50) {
      area = -50;
      }
      // Walk around the selector
      walker(this);

      return stack.each(function() {
      var self = $(this);

      // If already customized
      tidy(self);

      var node = this,
      id = node.id,

      // Layer styles
      offset = -area + '%',
      size = 100 + (area * 2) + '%',
      layer = {
      position: 'absolute',
      top: offset,
      left: offset,
      display: 'block',
      width: size,
      height: size,
      margin: 0,
      padding: 0,
      background: '#fff',
      border: 0,
      opacity: 0
      },

      // Choose how to hide input
      hide = _mobile ? {
      position: 'absolute',
      visibility: 'hidden'
      } : area ? layer : {
      position: 'absolute',
      opacity: 0
      },

      // Get proper class
      className = node[_type] == _checkbox ? settings.checkboxClass || 'i' + _checkbox : settings.radioClass || 'i' + _radio,

      // Find assigned labels
      label = $(_label + '[for="' + id + '"]').add(self.closest(_label)),

      // Check ARIA option
      aria = !!settings.aria,

      // Set ARIA placeholder
      ariaID = _iCheck + '-' + Math.random().toString(36).replace('0.', ''),

      // Parent & helper
      parent = '<div class="' + className + '" ' + (aria ? 'role="' + node[_type] + '" ' : ''),
      helper;

      // Set ARIA "labelledby"
      if (label.length && aria) {
      label.each(function() {
      parent += 'aria-labelledby="';

      if (this.id) {
      parent += this.id;
      } else {
      this.id = ariaID;
      parent += ariaID;
      }

      parent += '"';
      });
      }
      // Wrap input
      parent = self.wrap(parent + '/>')[_callback]('ifCreated').parent().append(settings.insert);

      // Layer addition
      helper = $('<ins class="' + _iCheckHelper + '"/>').css(layer).appendTo(parent);

      // Finalize customization
      self.data(_iCheck, {o: settings, s: self.attr('style')}).css(hide);
      !!settings.inheritClass && parent[_add](node.className || '');
      !!settings.inheritID && id && parent.attr('id', _iCheck + '-' + id);
      parent.css('position') == 'static' && parent.css('position', 'relative');
      operate(self, true, _update);

      // Label events
      if (label.length) {
      label.on(_click + '.i mouseover.i mouseout.i ' + _touch, function(event) {
      var type = event[_type],
      item = $(this);

      // Do nothing if input is disabled
      if (!node[_disabled]) {

      // Click
      if (type == _click) {
      if ($(event.target).is('a')) {
      return;
      }
      operate(self, false, true);

      // Hover state
      } else if (labelHover) {

      // mouseout|touchend
      if (/ut|nd/.test(type)) {
      parent[_remove](hoverClass);
      item[_remove](labelHoverClass);
      } else {
      parent[_add](hoverClass);
      item[_add](labelHoverClass);
      }
      }
      if (_mobile) {
      event.stopPropagation();
      } else {
      return false;
      }
      }
      });
      }
      // Input events
      self.on(_click + '.i focus.i blur.i keyup.i keydown.i keypress.i', function(event) {
      var type = event[_type],
      key = event.keyCode;

      // Click
      if (type == _click) {
      return false;

      // Keydown
      } else if (type == 'keydown' && key == 32) {
      if (!(node[_type] == _radio && node[_checked])) {
      if (node[_checked]) {
      off(self, _checked);
      } else {
      on(self, _checked);
      }
      }
      return false;

      // Keyup
      } else if (type == 'keyup' && node[_type] == _radio) {
      !node[_checked] && on(self, _checked);

      // Focus/blur
      } else if (/us|ur/.test(type)) {
      parent[type == 'blur' ? _remove : _add](focusClass);
      }
      });

      // Helper events
      helper.on(_click + ' mousedown mouseup mouseover mouseout ' + _touch, function(event) {
      var type = event[_type],

      // mousedown|mouseup
      toggle = /wn|up/.test(type) ? activeClass : hoverClass;

      // Do nothing if input is disabled
      if (!node[_disabled]) {

      // Click
      if (type == _click) {
      operate(self, false, true);

      // Active and hover states
      } else {

      // State is on
      if (/wn|er|in/.test(type)) {

      // mousedown|mouseover|touchbegin
      parent[_add](toggle);

      // State is off
      } else {
      parent[_remove](toggle + ' ' + activeClass);
      }
      // Label hover
      if (label.length && labelHover && toggle == hoverClass) {

      // mouseout|touchend
      label[/ut|nd/.test(type) ? _remove : _add](labelHoverClass);
      }
      }
      if (_mobile) {
      event.stopPropagation();
      } else {
      return false;
      }
      }
      });
      });
      } else {
      return this;
      }
      };

      // Do something with inputs
      function operate(input, direct, method) {
      var node = input[0],
      state = /er/.test(method) ? _indeterminate : /bl/.test(method) ? _disabled : _checked,
      active = method == _update ? {
      checked: node[_checked],
      disabled: node[_disabled],
      indeterminate: input.attr(_indeterminate) == 'true' || input.attr(_determinate) == 'false'
      } : node[state];

      // Check, disable or indeterminate
      if (/^(ch|di|in)/.test(method) && !active) {
      on(input, state);

      // Uncheck, enable or determinate
      } else if (/^(un|en|de)/.test(method) && active) {
      off(input, state);

      // Update
      } else if (method == _update) {

      // Handle states
      for (var state in active) {
      if (active[state]) {
      on(input, state, true);
      } else {
      off(input, state, true);
      }
      }
      } else if (!direct || method == 'toggle') {

      // Helper or label was clicked
      if (!direct) {
      input[_callback]('ifClicked');
      }
      // Toggle checked state
      if (active) {
      if (node[_type] !== _radio) {
      off(input, state);
      }
      } else {
      on(input, state);
      }
      }
      }
      // Add checked, disabled or indeterminate state
      function on(input, state, keep) {
      var node = input[0],
      parent = input.parent(),
      checked = state == _checked,
      indeterminate = state == _indeterminate,
      disabled = state == _disabled,
      callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',
      regular = option(input, callback + capitalize(node[_type])),
      specific = option(input, state + capitalize(node[_type]));

      // Prevent unnecessary actions
      if (node[state] !== true) {

      // Toggle assigned radio buttons
      if (!keep && state == _checked && node[_type] == _radio && node.name) {
      var form = input.closest('form'),
      inputs = 'input[name="' + node.name + '"]';

      inputs = form.length ? form.find(inputs) : $(inputs);

      inputs.each(function() {
      if (this !== node && $(this).data(_iCheck)) {
      off($(this), state);
      }
      });
      }
      // Indeterminate state
      if (indeterminate) {

      // Add indeterminate state
      node[state] = true;

      // Remove checked state
      if (node[_checked]) {
      off(input, _checked, 'force');
      }
      // Checked or disabled state
      } else {

      // Add checked or disabled state
      if (!keep) {
      node[state] = true;
      }
      // Remove indeterminate state
      if (checked && node[_indeterminate]) {
      off(input, _indeterminate, false);
      }
      }
      // Trigger callbacks
      callbacks(input, checked, state, keep);
      }
      // Add proper cursor
      if (node[_disabled] && !!option(input, _cursor, true)) {
      parent.find('.' + _iCheckHelper).css(_cursor, 'default');
      }
      // Add state class
      parent[_add](specific || option(input, state) || '');

      // Set ARIA attribute
      disabled ? parent.attr('aria-disabled', 'true') : parent.attr('aria-checked', indeterminate ? 'mixed' : 'true');

      // Remove regular state class
      parent[_remove](regular || option(input, callback) || '');
      }
      // Remove checked, disabled or indeterminate state
      function off(input, state, keep) {
      var node = input[0],
      parent = input.parent(),
      checked = state == _checked,
      indeterminate = state == _indeterminate,
      disabled = state == _disabled,
      callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',
      regular = option(input, callback + capitalize(node[_type])),
      specific = option(input, state + capitalize(node[_type]));

      // Prevent unnecessary actions
      if (node[state] !== false) {

      // Toggle state
      if (indeterminate || !keep || keep == 'force') {
      node[state] = false;
      }
      // Trigger callbacks
      callbacks(input, checked, callback, keep);
      }
      // Add proper cursor
      if (!node[_disabled] && !!option(input, _cursor, true)) {
      parent.find('.' + _iCheckHelper).css(_cursor, 'pointer');
      }
      // Remove state class
      parent[_remove](specific || option(input, state) || '');

      // Set ARIA attribute
      disabled ? parent.attr('aria-disabled', 'false') : parent.attr('aria-checked', 'false');

      // Add regular state class
      parent[_add](regular || option(input, callback) || '');
      }
      // Remove all traces
      function tidy(input, callback) {
      if (input.data(_iCheck)) {

      // Remove everything except input
      input.parent().html(input.attr('style', input.data(_iCheck).s || ''));

      // Callback
      if (callback) {
      input[_callback](callback);
      }
      // Unbind events
      input.off('.i').unwrap();
      $(_label + '[for="' + input[0].id + '"]').add(input.closest(_label)).off('.i');
      }
      }
      // Get some option
      function option(input, state, regular) {
      if (input.data(_iCheck)) {
      return input.data(_iCheck).o[state + (regular ? '' : 'Class')];
      }
      }
      // Capitalize some string
      function capitalize(string) {
      return string.charAt(0).toUpperCase() + string.slice(1);
      }
      // Executable handlers
      function callbacks(input, checked, callback, keep) {
      if (!keep) {
      if (checked) {
      input[_callback]('ifToggled');
      }
      input[_callback]('ifChanged')[_callback]('if' + capitalize(callback));
      }
      }
      })(window.jQuery || window.Zepto);


      minimal.css



         /* iCheck plugin Minimal skin, black
      ----------------------------------- */
      .icheckbox_minimal,
      .iradio_minimal {
      display: inline-block;
      *display: inline;
      vertical-align: middle;
      margin: 0;
      padding: 0;
      width: 18px;
      height: 18px;
      background: url(minimal.png) no-repeat;
      border: none;
      cursor: pointer;
      }

      .icheckbox_minimal {
      background-position: 0 0;
      }
      .icheckbox_minimal.hover {
      background-position: -20px 0;
      }
      .icheckbox_minimal.checked {
      background-position: -40px 0;
      }
      .icheckbox_minimal.disabled {
      background-position: -60px 0;
      cursor: default;
      }
      .icheckbox_minimal.checked.disabled {
      background-position: -80px 0;
      }

      .iradio_minimal {
      background-position: -100px 0;
      }
      .iradio_minimal.hover {
      background-position: -120px 0;
      }
      .iradio_minimal.checked {
      background-position: -140px 0;
      }
      .iradio_minimal.disabled {
      background-position: -160px 0;
      cursor: default;
      }
      .iradio_minimal.checked.disabled {
      background-position: -180px 0;
      }

      /* Retina support */
      @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
      only screen and (-moz-min-device-pixel-ratio: 1.5),
      only screen and (-o-min-device-pixel-ratio: 3/2),
      only screen and (min-device-pixel-ratio: 1.5) {
      .icheckbox_minimal,
      .iradio_minimal {
      background-image: url(minimal@2x.png);
      -webkit-background-size: 200px 20px;
      background-size: 200px 20px;
      }
      }


      blue.css



      /* iCheck plugin Minimal skin, blue
      ----------------------------------- */
      .icheckbox_minimal-blue,
      .iradio_minimal-blue {
      display: inline-block;
      *display: inline;
      vertical-align: middle;
      margin: 0;
      padding: 0;
      width: 18px;
      height: 18px;
      background: url(blue.png) no-repeat;
      border: none;
      cursor: pointer;
      }

      .icheckbox_minimal-blue {
      background-position: 0 0;
      }
      .icheckbox_minimal-blue.hover {
      background-position: -20px 0;
      }
      .icheckbox_minimal-blue.checked {
      background-position: -40px 0;
      }
      .icheckbox_minimal-blue.disabled {
      background-position: -60px 0;
      cursor: default;
      }
      .icheckbox_minimal-blue.checked.disabled {
      background-position: -80px 0;
      }

      .iradio_minimal-blue {
      background-position: -100px 0;
      }
      .iradio_minimal-blue.hover {
      background-position: -120px 0;
      }
      .iradio_minimal-blue.checked {
      background-position: -140px 0;
      }
      .iradio_minimal-blue.disabled {
      background-position: -160px 0;
      cursor: default;
      }
      .iradio_minimal-blue.checked.disabled {
      background-position: -180px 0;
      }

      /* Retina support */
      @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
      only screen and (-moz-min-device-pixel-ratio: 1.5),
      only screen and (-o-min-device-pixel-ratio: 3/2),
      only screen and (min-device-pixel-ratio: 1.5) {
      .icheckbox_minimal-blue,
      .iradio_minimal-blue {
      background-image: url(blue@2x.png);
      -webkit-background-size: 200px 20px;
      background-size: 200px 20px;
      }
      }









      share|improve this question
















      Angularjs conflicts with iCheck jquery and not able fetch data from radio button
      When I write this statement, it perfectly works fine. I am able to fetch the data using Angular JS 6.



      <input type="radio" ng-model="gradesForm.status" name="r1" value="inactive"> 


      But, when I include the css class (class="minimal" ), it stops fetching the data.



      <input type="radio" ng-model="gradesForm.status" name="r1" class="minimal" value="inactive"> 


      ng-model not working



      The java script function is



            //iCheck for checkbox and radio inputs
      $('input[type="checkbox"].minimal, input[type="radio"].minimal')
      .iCheck({
      checkboxClass: 'icheckbox_minimal-blue',
      radioClass: 'iradio_minimal-blue'
      })


      icheck.js



      /*!
      * iCheck v1.0.1, http://git.io/arlzeA
      * =================================
      * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization
      *
      * (c) 2013 Damir Sultanov, http://fronteed.com
      * MIT Licensed
      */

      (function($) {

      // Cached vars
      var _iCheck = 'iCheck',
      _iCheckHelper = _iCheck + '-helper',
      _checkbox = 'checkbox',
      _radio = 'radio',
      _checked = 'checked',
      _unchecked = 'un' + _checked,
      _disabled = 'disabled',
      _determinate = 'determinate',
      _indeterminate = 'in' + _determinate,
      _update = 'update',
      _type = 'type',
      _click = 'click',
      _touch = 'touchbegin.i touchend.i',
      _add = 'addClass',
      _remove = 'removeClass',
      _callback = 'trigger',
      _label = 'label',
      _cursor = 'cursor',
      _mobile = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);

      // Plugin init
      $.fn[_iCheck] = function(options, fire) {

      // Walker
      var handle = 'input[type="' + _checkbox + '"], input[type="' + _radio + '"]',
      stack = $(),
      walker = function(object) {
      object.each(function() {
      var self = $(this);

      if (self.is(handle)) {
      stack = stack.add(self);
      } else {
      stack = stack.add(self.find(handle));
      }
      });
      };

      // Check if we should operate with some method
      if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(options)) {

      // Normalize method's name
      options = options.toLowerCase();

      // Find checkboxes and radio buttons
      walker(this);

      return stack.each(function() {
      var self = $(this);

      if (options == 'destroy') {
      tidy(self, 'ifDestroyed');
      } else {
      operate(self, true, options);
      }
      // Fire method's callback
      if ($.isFunction(fire)) {
      fire();
      }
      });

      // Customization
      } else if (typeof options == 'object' || !options) {

      // Check if any options were passed
      var settings = $.extend({
      checkedClass: _checked,
      disabledClass: _disabled,
      indeterminateClass: _indeterminate,
      labelHover: true,
      aria: false
      }, options),

      selector = settings.handle,
      hoverClass = settings.hoverClass || 'hover',
      focusClass = settings.focusClass || 'focus',
      activeClass = settings.activeClass || 'active',
      labelHover = !!settings.labelHover,
      labelHoverClass = settings.labelHoverClass || 'hover',

      // Setup clickable area
      area = ('' + settings.increaseArea).replace('%', '') | 0;

      // Selector limit
      if (selector == _checkbox || selector == _radio) {
      handle = 'input[type="' + selector + '"]';
      }
      // Clickable area limit
      if (area < -50) {
      area = -50;
      }
      // Walk around the selector
      walker(this);

      return stack.each(function() {
      var self = $(this);

      // If already customized
      tidy(self);

      var node = this,
      id = node.id,

      // Layer styles
      offset = -area + '%',
      size = 100 + (area * 2) + '%',
      layer = {
      position: 'absolute',
      top: offset,
      left: offset,
      display: 'block',
      width: size,
      height: size,
      margin: 0,
      padding: 0,
      background: '#fff',
      border: 0,
      opacity: 0
      },

      // Choose how to hide input
      hide = _mobile ? {
      position: 'absolute',
      visibility: 'hidden'
      } : area ? layer : {
      position: 'absolute',
      opacity: 0
      },

      // Get proper class
      className = node[_type] == _checkbox ? settings.checkboxClass || 'i' + _checkbox : settings.radioClass || 'i' + _radio,

      // Find assigned labels
      label = $(_label + '[for="' + id + '"]').add(self.closest(_label)),

      // Check ARIA option
      aria = !!settings.aria,

      // Set ARIA placeholder
      ariaID = _iCheck + '-' + Math.random().toString(36).replace('0.', ''),

      // Parent & helper
      parent = '<div class="' + className + '" ' + (aria ? 'role="' + node[_type] + '" ' : ''),
      helper;

      // Set ARIA "labelledby"
      if (label.length && aria) {
      label.each(function() {
      parent += 'aria-labelledby="';

      if (this.id) {
      parent += this.id;
      } else {
      this.id = ariaID;
      parent += ariaID;
      }

      parent += '"';
      });
      }
      // Wrap input
      parent = self.wrap(parent + '/>')[_callback]('ifCreated').parent().append(settings.insert);

      // Layer addition
      helper = $('<ins class="' + _iCheckHelper + '"/>').css(layer).appendTo(parent);

      // Finalize customization
      self.data(_iCheck, {o: settings, s: self.attr('style')}).css(hide);
      !!settings.inheritClass && parent[_add](node.className || '');
      !!settings.inheritID && id && parent.attr('id', _iCheck + '-' + id);
      parent.css('position') == 'static' && parent.css('position', 'relative');
      operate(self, true, _update);

      // Label events
      if (label.length) {
      label.on(_click + '.i mouseover.i mouseout.i ' + _touch, function(event) {
      var type = event[_type],
      item = $(this);

      // Do nothing if input is disabled
      if (!node[_disabled]) {

      // Click
      if (type == _click) {
      if ($(event.target).is('a')) {
      return;
      }
      operate(self, false, true);

      // Hover state
      } else if (labelHover) {

      // mouseout|touchend
      if (/ut|nd/.test(type)) {
      parent[_remove](hoverClass);
      item[_remove](labelHoverClass);
      } else {
      parent[_add](hoverClass);
      item[_add](labelHoverClass);
      }
      }
      if (_mobile) {
      event.stopPropagation();
      } else {
      return false;
      }
      }
      });
      }
      // Input events
      self.on(_click + '.i focus.i blur.i keyup.i keydown.i keypress.i', function(event) {
      var type = event[_type],
      key = event.keyCode;

      // Click
      if (type == _click) {
      return false;

      // Keydown
      } else if (type == 'keydown' && key == 32) {
      if (!(node[_type] == _radio && node[_checked])) {
      if (node[_checked]) {
      off(self, _checked);
      } else {
      on(self, _checked);
      }
      }
      return false;

      // Keyup
      } else if (type == 'keyup' && node[_type] == _radio) {
      !node[_checked] && on(self, _checked);

      // Focus/blur
      } else if (/us|ur/.test(type)) {
      parent[type == 'blur' ? _remove : _add](focusClass);
      }
      });

      // Helper events
      helper.on(_click + ' mousedown mouseup mouseover mouseout ' + _touch, function(event) {
      var type = event[_type],

      // mousedown|mouseup
      toggle = /wn|up/.test(type) ? activeClass : hoverClass;

      // Do nothing if input is disabled
      if (!node[_disabled]) {

      // Click
      if (type == _click) {
      operate(self, false, true);

      // Active and hover states
      } else {

      // State is on
      if (/wn|er|in/.test(type)) {

      // mousedown|mouseover|touchbegin
      parent[_add](toggle);

      // State is off
      } else {
      parent[_remove](toggle + ' ' + activeClass);
      }
      // Label hover
      if (label.length && labelHover && toggle == hoverClass) {

      // mouseout|touchend
      label[/ut|nd/.test(type) ? _remove : _add](labelHoverClass);
      }
      }
      if (_mobile) {
      event.stopPropagation();
      } else {
      return false;
      }
      }
      });
      });
      } else {
      return this;
      }
      };

      // Do something with inputs
      function operate(input, direct, method) {
      var node = input[0],
      state = /er/.test(method) ? _indeterminate : /bl/.test(method) ? _disabled : _checked,
      active = method == _update ? {
      checked: node[_checked],
      disabled: node[_disabled],
      indeterminate: input.attr(_indeterminate) == 'true' || input.attr(_determinate) == 'false'
      } : node[state];

      // Check, disable or indeterminate
      if (/^(ch|di|in)/.test(method) && !active) {
      on(input, state);

      // Uncheck, enable or determinate
      } else if (/^(un|en|de)/.test(method) && active) {
      off(input, state);

      // Update
      } else if (method == _update) {

      // Handle states
      for (var state in active) {
      if (active[state]) {
      on(input, state, true);
      } else {
      off(input, state, true);
      }
      }
      } else if (!direct || method == 'toggle') {

      // Helper or label was clicked
      if (!direct) {
      input[_callback]('ifClicked');
      }
      // Toggle checked state
      if (active) {
      if (node[_type] !== _radio) {
      off(input, state);
      }
      } else {
      on(input, state);
      }
      }
      }
      // Add checked, disabled or indeterminate state
      function on(input, state, keep) {
      var node = input[0],
      parent = input.parent(),
      checked = state == _checked,
      indeterminate = state == _indeterminate,
      disabled = state == _disabled,
      callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',
      regular = option(input, callback + capitalize(node[_type])),
      specific = option(input, state + capitalize(node[_type]));

      // Prevent unnecessary actions
      if (node[state] !== true) {

      // Toggle assigned radio buttons
      if (!keep && state == _checked && node[_type] == _radio && node.name) {
      var form = input.closest('form'),
      inputs = 'input[name="' + node.name + '"]';

      inputs = form.length ? form.find(inputs) : $(inputs);

      inputs.each(function() {
      if (this !== node && $(this).data(_iCheck)) {
      off($(this), state);
      }
      });
      }
      // Indeterminate state
      if (indeterminate) {

      // Add indeterminate state
      node[state] = true;

      // Remove checked state
      if (node[_checked]) {
      off(input, _checked, 'force');
      }
      // Checked or disabled state
      } else {

      // Add checked or disabled state
      if (!keep) {
      node[state] = true;
      }
      // Remove indeterminate state
      if (checked && node[_indeterminate]) {
      off(input, _indeterminate, false);
      }
      }
      // Trigger callbacks
      callbacks(input, checked, state, keep);
      }
      // Add proper cursor
      if (node[_disabled] && !!option(input, _cursor, true)) {
      parent.find('.' + _iCheckHelper).css(_cursor, 'default');
      }
      // Add state class
      parent[_add](specific || option(input, state) || '');

      // Set ARIA attribute
      disabled ? parent.attr('aria-disabled', 'true') : parent.attr('aria-checked', indeterminate ? 'mixed' : 'true');

      // Remove regular state class
      parent[_remove](regular || option(input, callback) || '');
      }
      // Remove checked, disabled or indeterminate state
      function off(input, state, keep) {
      var node = input[0],
      parent = input.parent(),
      checked = state == _checked,
      indeterminate = state == _indeterminate,
      disabled = state == _disabled,
      callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',
      regular = option(input, callback + capitalize(node[_type])),
      specific = option(input, state + capitalize(node[_type]));

      // Prevent unnecessary actions
      if (node[state] !== false) {

      // Toggle state
      if (indeterminate || !keep || keep == 'force') {
      node[state] = false;
      }
      // Trigger callbacks
      callbacks(input, checked, callback, keep);
      }
      // Add proper cursor
      if (!node[_disabled] && !!option(input, _cursor, true)) {
      parent.find('.' + _iCheckHelper).css(_cursor, 'pointer');
      }
      // Remove state class
      parent[_remove](specific || option(input, state) || '');

      // Set ARIA attribute
      disabled ? parent.attr('aria-disabled', 'false') : parent.attr('aria-checked', 'false');

      // Add regular state class
      parent[_add](regular || option(input, callback) || '');
      }
      // Remove all traces
      function tidy(input, callback) {
      if (input.data(_iCheck)) {

      // Remove everything except input
      input.parent().html(input.attr('style', input.data(_iCheck).s || ''));

      // Callback
      if (callback) {
      input[_callback](callback);
      }
      // Unbind events
      input.off('.i').unwrap();
      $(_label + '[for="' + input[0].id + '"]').add(input.closest(_label)).off('.i');
      }
      }
      // Get some option
      function option(input, state, regular) {
      if (input.data(_iCheck)) {
      return input.data(_iCheck).o[state + (regular ? '' : 'Class')];
      }
      }
      // Capitalize some string
      function capitalize(string) {
      return string.charAt(0).toUpperCase() + string.slice(1);
      }
      // Executable handlers
      function callbacks(input, checked, callback, keep) {
      if (!keep) {
      if (checked) {
      input[_callback]('ifToggled');
      }
      input[_callback]('ifChanged')[_callback]('if' + capitalize(callback));
      }
      }
      })(window.jQuery || window.Zepto);


      minimal.css



         /* iCheck plugin Minimal skin, black
      ----------------------------------- */
      .icheckbox_minimal,
      .iradio_minimal {
      display: inline-block;
      *display: inline;
      vertical-align: middle;
      margin: 0;
      padding: 0;
      width: 18px;
      height: 18px;
      background: url(minimal.png) no-repeat;
      border: none;
      cursor: pointer;
      }

      .icheckbox_minimal {
      background-position: 0 0;
      }
      .icheckbox_minimal.hover {
      background-position: -20px 0;
      }
      .icheckbox_minimal.checked {
      background-position: -40px 0;
      }
      .icheckbox_minimal.disabled {
      background-position: -60px 0;
      cursor: default;
      }
      .icheckbox_minimal.checked.disabled {
      background-position: -80px 0;
      }

      .iradio_minimal {
      background-position: -100px 0;
      }
      .iradio_minimal.hover {
      background-position: -120px 0;
      }
      .iradio_minimal.checked {
      background-position: -140px 0;
      }
      .iradio_minimal.disabled {
      background-position: -160px 0;
      cursor: default;
      }
      .iradio_minimal.checked.disabled {
      background-position: -180px 0;
      }

      /* Retina support */
      @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
      only screen and (-moz-min-device-pixel-ratio: 1.5),
      only screen and (-o-min-device-pixel-ratio: 3/2),
      only screen and (min-device-pixel-ratio: 1.5) {
      .icheckbox_minimal,
      .iradio_minimal {
      background-image: url(minimal@2x.png);
      -webkit-background-size: 200px 20px;
      background-size: 200px 20px;
      }
      }


      blue.css



      /* iCheck plugin Minimal skin, blue
      ----------------------------------- */
      .icheckbox_minimal-blue,
      .iradio_minimal-blue {
      display: inline-block;
      *display: inline;
      vertical-align: middle;
      margin: 0;
      padding: 0;
      width: 18px;
      height: 18px;
      background: url(blue.png) no-repeat;
      border: none;
      cursor: pointer;
      }

      .icheckbox_minimal-blue {
      background-position: 0 0;
      }
      .icheckbox_minimal-blue.hover {
      background-position: -20px 0;
      }
      .icheckbox_minimal-blue.checked {
      background-position: -40px 0;
      }
      .icheckbox_minimal-blue.disabled {
      background-position: -60px 0;
      cursor: default;
      }
      .icheckbox_minimal-blue.checked.disabled {
      background-position: -80px 0;
      }

      .iradio_minimal-blue {
      background-position: -100px 0;
      }
      .iradio_minimal-blue.hover {
      background-position: -120px 0;
      }
      .iradio_minimal-blue.checked {
      background-position: -140px 0;
      }
      .iradio_minimal-blue.disabled {
      background-position: -160px 0;
      cursor: default;
      }
      .iradio_minimal-blue.checked.disabled {
      background-position: -180px 0;
      }

      /* Retina support */
      @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
      only screen and (-moz-min-device-pixel-ratio: 1.5),
      only screen and (-o-min-device-pixel-ratio: 3/2),
      only screen and (min-device-pixel-ratio: 1.5) {
      .icheckbox_minimal-blue,
      .iradio_minimal-blue {
      background-image: url(blue@2x.png);
      -webkit-background-size: 200px 20px;
      background-size: 200px 20px;
      }
      }






      jquery css angularjs icheck






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 16 '18 at 11:41









      Akber Iqbal

      3,07341427




      3,07341427










      asked Nov 16 '18 at 9:47









      Subhanu SharmaSubhanu Sharma

      152




      152
























          1 Answer
          1






          active

          oldest

          votes


















          0














          iCheck is jquery plugin and it appends its own div element in main html and put parent input / checkbox element inside div element.



          <div class="icheckbox_square-blue" aria-checked="false" aria-disabled="false" style="position: relative;">
          <input type="checkbox" ng-model="gradesForm.status" name="r1" id="minimal" value="inactive" class="ng-pristine ng-untouched ng-valid ng-empty" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; background: rgb(255, 255, 255); border: 0px; opacity: 0;">
          <ins class="iCheck-helper" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; background: rgb(255, 255, 255); border: 0px; opacity: 0;"></ins>
          </div>


          due to this $scope is no longer accessible by input element, as the element is dynamically inserted by jQuery and there is no longer watchers in current $scope, that's why $scope changes are not reflecting.



          We have to bind controller functions with iCheck event functions as following



          $scope.printStatus = function($event){ // do your stuff }


          $('input[type="checkbox"].minimal, input[type="radio"].minimal').iCheck({checkboxClass: 'icheckbox_square-blue',
          radioClass: 'iradio_square-blue',
          increaseArea: '20%'
          })
          .on('ifChanged', $scope.printStatus)


          Please check the following link for alternate approach



          https://codepen.io/mosluce/pen/yYmXGz






          share|improve this answer
























          • This dose not work for completely. The div is showing the outer boundary of radio button but there is an internal separate radio button.

            – Subhanu Sharma
            Nov 17 '18 at 4:37











          • Thanks a lot. Creating a binding functions helped me a bit. I was able to fetch the data by using document.getElementById("r1").checked but then i need to set this to my $scope.gradesForm.status(which is in other angularjs script) but when I am doing so directly it is not working. Can you tell me how to fetch value from that radio button and write it in $scope.gradesForm.status (an angularjs object).

            – Subhanu Sharma
            Nov 17 '18 at 8:33











          • Please check the $event object, it contains all states of related radio / checkbox

            – alok modi
            Nov 20 '18 at 9:06












          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53335213%2fangularjs-conflicts-with-icheck-jquery-and-not-able-fetch-data-from-radio-button%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          iCheck is jquery plugin and it appends its own div element in main html and put parent input / checkbox element inside div element.



          <div class="icheckbox_square-blue" aria-checked="false" aria-disabled="false" style="position: relative;">
          <input type="checkbox" ng-model="gradesForm.status" name="r1" id="minimal" value="inactive" class="ng-pristine ng-untouched ng-valid ng-empty" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; background: rgb(255, 255, 255); border: 0px; opacity: 0;">
          <ins class="iCheck-helper" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; background: rgb(255, 255, 255); border: 0px; opacity: 0;"></ins>
          </div>


          due to this $scope is no longer accessible by input element, as the element is dynamically inserted by jQuery and there is no longer watchers in current $scope, that's why $scope changes are not reflecting.



          We have to bind controller functions with iCheck event functions as following



          $scope.printStatus = function($event){ // do your stuff }


          $('input[type="checkbox"].minimal, input[type="radio"].minimal').iCheck({checkboxClass: 'icheckbox_square-blue',
          radioClass: 'iradio_square-blue',
          increaseArea: '20%'
          })
          .on('ifChanged', $scope.printStatus)


          Please check the following link for alternate approach



          https://codepen.io/mosluce/pen/yYmXGz






          share|improve this answer
























          • This dose not work for completely. The div is showing the outer boundary of radio button but there is an internal separate radio button.

            – Subhanu Sharma
            Nov 17 '18 at 4:37











          • Thanks a lot. Creating a binding functions helped me a bit. I was able to fetch the data by using document.getElementById("r1").checked but then i need to set this to my $scope.gradesForm.status(which is in other angularjs script) but when I am doing so directly it is not working. Can you tell me how to fetch value from that radio button and write it in $scope.gradesForm.status (an angularjs object).

            – Subhanu Sharma
            Nov 17 '18 at 8:33











          • Please check the $event object, it contains all states of related radio / checkbox

            – alok modi
            Nov 20 '18 at 9:06
















          0














          iCheck is jquery plugin and it appends its own div element in main html and put parent input / checkbox element inside div element.



          <div class="icheckbox_square-blue" aria-checked="false" aria-disabled="false" style="position: relative;">
          <input type="checkbox" ng-model="gradesForm.status" name="r1" id="minimal" value="inactive" class="ng-pristine ng-untouched ng-valid ng-empty" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; background: rgb(255, 255, 255); border: 0px; opacity: 0;">
          <ins class="iCheck-helper" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; background: rgb(255, 255, 255); border: 0px; opacity: 0;"></ins>
          </div>


          due to this $scope is no longer accessible by input element, as the element is dynamically inserted by jQuery and there is no longer watchers in current $scope, that's why $scope changes are not reflecting.



          We have to bind controller functions with iCheck event functions as following



          $scope.printStatus = function($event){ // do your stuff }


          $('input[type="checkbox"].minimal, input[type="radio"].minimal').iCheck({checkboxClass: 'icheckbox_square-blue',
          radioClass: 'iradio_square-blue',
          increaseArea: '20%'
          })
          .on('ifChanged', $scope.printStatus)


          Please check the following link for alternate approach



          https://codepen.io/mosluce/pen/yYmXGz






          share|improve this answer
























          • This dose not work for completely. The div is showing the outer boundary of radio button but there is an internal separate radio button.

            – Subhanu Sharma
            Nov 17 '18 at 4:37











          • Thanks a lot. Creating a binding functions helped me a bit. I was able to fetch the data by using document.getElementById("r1").checked but then i need to set this to my $scope.gradesForm.status(which is in other angularjs script) but when I am doing so directly it is not working. Can you tell me how to fetch value from that radio button and write it in $scope.gradesForm.status (an angularjs object).

            – Subhanu Sharma
            Nov 17 '18 at 8:33











          • Please check the $event object, it contains all states of related radio / checkbox

            – alok modi
            Nov 20 '18 at 9:06














          0












          0








          0







          iCheck is jquery plugin and it appends its own div element in main html and put parent input / checkbox element inside div element.



          <div class="icheckbox_square-blue" aria-checked="false" aria-disabled="false" style="position: relative;">
          <input type="checkbox" ng-model="gradesForm.status" name="r1" id="minimal" value="inactive" class="ng-pristine ng-untouched ng-valid ng-empty" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; background: rgb(255, 255, 255); border: 0px; opacity: 0;">
          <ins class="iCheck-helper" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; background: rgb(255, 255, 255); border: 0px; opacity: 0;"></ins>
          </div>


          due to this $scope is no longer accessible by input element, as the element is dynamically inserted by jQuery and there is no longer watchers in current $scope, that's why $scope changes are not reflecting.



          We have to bind controller functions with iCheck event functions as following



          $scope.printStatus = function($event){ // do your stuff }


          $('input[type="checkbox"].minimal, input[type="radio"].minimal').iCheck({checkboxClass: 'icheckbox_square-blue',
          radioClass: 'iradio_square-blue',
          increaseArea: '20%'
          })
          .on('ifChanged', $scope.printStatus)


          Please check the following link for alternate approach



          https://codepen.io/mosluce/pen/yYmXGz






          share|improve this answer













          iCheck is jquery plugin and it appends its own div element in main html and put parent input / checkbox element inside div element.



          <div class="icheckbox_square-blue" aria-checked="false" aria-disabled="false" style="position: relative;">
          <input type="checkbox" ng-model="gradesForm.status" name="r1" id="minimal" value="inactive" class="ng-pristine ng-untouched ng-valid ng-empty" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; background: rgb(255, 255, 255); border: 0px; opacity: 0;">
          <ins class="iCheck-helper" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; background: rgb(255, 255, 255); border: 0px; opacity: 0;"></ins>
          </div>


          due to this $scope is no longer accessible by input element, as the element is dynamically inserted by jQuery and there is no longer watchers in current $scope, that's why $scope changes are not reflecting.



          We have to bind controller functions with iCheck event functions as following



          $scope.printStatus = function($event){ // do your stuff }


          $('input[type="checkbox"].minimal, input[type="radio"].minimal').iCheck({checkboxClass: 'icheckbox_square-blue',
          radioClass: 'iradio_square-blue',
          increaseArea: '20%'
          })
          .on('ifChanged', $scope.printStatus)


          Please check the following link for alternate approach



          https://codepen.io/mosluce/pen/yYmXGz







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 16 '18 at 11:55









          alok modialok modi

          263




          263













          • This dose not work for completely. The div is showing the outer boundary of radio button but there is an internal separate radio button.

            – Subhanu Sharma
            Nov 17 '18 at 4:37











          • Thanks a lot. Creating a binding functions helped me a bit. I was able to fetch the data by using document.getElementById("r1").checked but then i need to set this to my $scope.gradesForm.status(which is in other angularjs script) but when I am doing so directly it is not working. Can you tell me how to fetch value from that radio button and write it in $scope.gradesForm.status (an angularjs object).

            – Subhanu Sharma
            Nov 17 '18 at 8:33











          • Please check the $event object, it contains all states of related radio / checkbox

            – alok modi
            Nov 20 '18 at 9:06



















          • This dose not work for completely. The div is showing the outer boundary of radio button but there is an internal separate radio button.

            – Subhanu Sharma
            Nov 17 '18 at 4:37











          • Thanks a lot. Creating a binding functions helped me a bit. I was able to fetch the data by using document.getElementById("r1").checked but then i need to set this to my $scope.gradesForm.status(which is in other angularjs script) but when I am doing so directly it is not working. Can you tell me how to fetch value from that radio button and write it in $scope.gradesForm.status (an angularjs object).

            – Subhanu Sharma
            Nov 17 '18 at 8:33











          • Please check the $event object, it contains all states of related radio / checkbox

            – alok modi
            Nov 20 '18 at 9:06

















          This dose not work for completely. The div is showing the outer boundary of radio button but there is an internal separate radio button.

          – Subhanu Sharma
          Nov 17 '18 at 4:37





          This dose not work for completely. The div is showing the outer boundary of radio button but there is an internal separate radio button.

          – Subhanu Sharma
          Nov 17 '18 at 4:37













          Thanks a lot. Creating a binding functions helped me a bit. I was able to fetch the data by using document.getElementById("r1").checked but then i need to set this to my $scope.gradesForm.status(which is in other angularjs script) but when I am doing so directly it is not working. Can you tell me how to fetch value from that radio button and write it in $scope.gradesForm.status (an angularjs object).

          – Subhanu Sharma
          Nov 17 '18 at 8:33





          Thanks a lot. Creating a binding functions helped me a bit. I was able to fetch the data by using document.getElementById("r1").checked but then i need to set this to my $scope.gradesForm.status(which is in other angularjs script) but when I am doing so directly it is not working. Can you tell me how to fetch value from that radio button and write it in $scope.gradesForm.status (an angularjs object).

          – Subhanu Sharma
          Nov 17 '18 at 8:33













          Please check the $event object, it contains all states of related radio / checkbox

          – alok modi
          Nov 20 '18 at 9:06





          Please check the $event object, it contains all states of related radio / checkbox

          – alok modi
          Nov 20 '18 at 9:06




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53335213%2fangularjs-conflicts-with-icheck-jquery-and-not-able-fetch-data-from-radio-button%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Florida Star v. B. J. F.

          Error while running script in elastic search , gateway timeout

          Adding quotations to stringified JSON object values