У мене є багато прапорців на моїй сторінці, і є прапорець select all, який встановлює всі прапорці. Якимось чином я хочу наслідувати цю клікову подію прапорця, навіть якщо це позначено / знято за допомогою кнопки вибору всіх. Як я можу це зробити?
У мене є багато прапорців на моїй сторінці, і є прапорець select all, який встановлює всі прапорці. Якимось чином я хочу наслідувати цю клікову подію прапорця, навіть якщо це позначено / знято за допомогою кнопки вибору всіх. Як я можу це зробити?
Відповіді:
Ви можете використовувати .trigger()
метод jQuery . Див. Http://api.jquery.com/trigger/
Наприклад:
$('#foo').trigger('click');
trigger('click')
перемикає поточне значення. Якщо ви хочете просто встановити його потім встановити checked
істину потім викликати triggerHandler (...) stackoverflow.com/questions/10268222 / ...
Отримання статусу перевірки
var checked = $("#selectall").is(":checked");
Потім для налаштування
$("input:checkbox").attr("checked",checked);
attr
як я використовую prop
сьогодні, але цей метод лише перевіряє прапорці, він не запускає подію натискання для кожного з них
Ви також можете використовувати .change()
функцію
Наприклад:
$('form input[type=checkbox]').change(function() { console.log('hello') });
немає gQuery
document.getElementById ('your_box'). onclick ();
Я використовував певний клас у своїх прапорцях.
var x = document.getElementsByClassName("box_class");
var i;
for (i = 0; i < x.length; i++) {
if(x[i].checked) x[i].checked = false;
else x[i].checked = true;
x[i].onclick();
}
Ви також можете цим скористатися, сподіваюся, ви зможете їм подати.
$(function(){
$('#elements input[type="checkbox"]').prop("checked", true).trigger("change");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div id="elements">
<input type="checkbox" id="item-1" value="1"> Item 1 <br />
<input type="checkbox" id="item-2" value="2" disabled> Item 2 <br />
<input type="checkbox" id="item-3" value="3" disabled> Item 3 <br />
<input type="checkbox" id="item-4" value="4" disabled> Item 4 <br />
<input type="checkbox" id="item-5" value="5"> Item 5
</div>
Функцією тригера від jQuery може бути ваша відповідь.
Документи jQuery говорять: Будь-які обробники подій, приєднані до .on () або одного з методів швидкого доступу, запускаються, коли відбувається відповідна подія. Однак їх можна запускати вручну, використовуючи метод .trigger (). Виклик .trigger () виконує обробники в тому ж порядку, в якому вони були б, якби подія була ініційована природним чином користувачем
Таким чином, найкращим рішенням в один рядок має бути:
$('.selector_class').trigger('click');
//or
$('#foo').click();
$("#gst_show>input").change(function(){
var checked = $(this).is(":checked");
if($("#gst_show>input:checkbox").attr("checked",checked)){
alert('Checked Successfully');
}
});
$('#foo').click()
, що ефективно робить те саме.