Ответ 1
Для тех, кто борется с этим:
const value = $('SELECTOR').iCheck('update')[0].checked;
Это напрямую возвращает true
или false
как boolean
.
Я использую плагин iCheck для настройки флажков. Мне нужно отобразить определенный текст, если установлен флажок один или несколько, и скрыть текст, если ни один из них не установлен.
Код, который у меня есть, в настоящее время отображает текст при первом щелчке, но не скрывает его, если я не нажимаю еще 2 раза. У меня есть несколько флажков и вы хотите показать текст, если один из них отмечен иначе, скрывает текст. Кто-нибудь знает? Плагин имеет:
ifChecked
ifChanged
ifClicked
ifUnchecked
ifToggled
ifDisabled
ifEnabled.......
обратные вызовы.... Вот функция плагина
$('input').iCheck({
checkboxClass: 'icheckbox_square-blue',
radioClass: 'iradio_square-blue',
increaseArea: '20%' // optional
});
Вот что я пробовал..
$('input').on('ifChecked', function(event){
$(".hide").toggle();
});
HTML
<input type="checkbox">
<div class"hide" style="display:none">Hi there</div>
Для тех, кто борется с этим:
const value = $('SELECTOR').iCheck('update')[0].checked;
Это напрямую возвращает true
или false
как boolean
.
вы можете получить значение флажка и статус
$('.i-checks').on('ifChanged', function(event) {
alert('checked = ' + event.target.checked);
alert('value = ' + event.target.value);
});
Проверьте это:
var checked = $(".myCheckbox").parent('[class*="icheckbox"]').hasClass("checked");
if(checked) {
//do stuff
}
Все обратные вызовы и функции описаны здесь: http://fronteed.com/iCheck/#usage
$('input').iCheck('check'); — change input state to checked
$('input').iCheck('uncheck'); — remove checked state
$('input').iCheck('toggle'); — toggle checked state
$('input').iCheck('disable'); — change input state to disabled
$('input').iCheck('enable'); — remove disabled state
$('input').iCheck('indeterminate'); — change input 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
Вам просто нужно использовать обратные вызовы из документации: https://github.com/fronteed/iCheck#callbacks
$('input').on('ifChecked', function(event){
alert(event.type + ' callback');
});
Я написал несколько простых вещей:
Когда вы инициализируете icheck
как:
$('input').iCheck({
checkboxClass: 'icheckbox_square-blue',
radioClass: 'iradio_square-blue',
increaseArea: '20%' // optional
});
Добавьте сюда этот код:
$('input').on('ifChecked', function (event){
$(this).closest("input").attr('checked', true);
});
$('input').on('ifUnchecked', function (event) {
$(this).closest("input").attr('checked', false);
});
После этого вы можете легко найти свое исходное состояние флажка.
Я написал этот код для использования icheck
в gridView
и получил доступ к его состоянию со стороны сервера на С#.
Просто найдите свой checkbox с его id.
Чтобы узнать, установлен ли флажок iCheck
var isChecked = $("#myicheckboxid").prop("checked");
Используйте этот код для 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) {
}
});
Вызов
element.iCheck('update');
Чтобы получить обновленную разметку для элемента
Используйте следующий код, чтобы проверить, проверен ли iCheck или нет, используя один метод.
$('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");
}
});
$('input').on('ifChanged', function(event) {
if($(".checkbox").is(":checked")) {
$value = $(this).val();
}
else if($(".checkbox").is(":not(:checked)")) {
$value= $(this).val();
}
});
это работает для меня... попробуйте
// Check #x
$( "#x" ).prop( "checked", true );
// Uncheck #x
$( "#x" ).prop( "checked", false );
Вы можете обернуть все свои флажки в родительском классе и проверить длину .checked
..
if( $('.your-parent-class').find('.checked').length ){
$(".hide").toggle();
}
Используйте этот метод:
$(document).on('ifChanged','SELECTOR', function(event){
alert(event.type + ' callback');
});
Из Вьетнама с любовью: 3
$(' input.selectAll').on('ifChanged', function(e){
var isChecked = e.currentTarget.checked;
if (isChecked === true) {
$('input.rows-check').prop('checked', true).trigger('change');
} else {
$('input.rows-check').prop('checked',false).trigger('change');
}
});
input.rows-check
- все входные данные нужно проверить или снять