Я работаю в asp.net.Bootstrap 4, Jquery 3.3.1 пытается использовать переключатель bootstrap4.У меня есть 3 входа, каждый со своим собственным идентификатором.При нагрузке включается первый тумблер.У меня есть событие при изменении, которое срабатывает всякий раз, когда меняется флажок.В этом событии изменения, если я либо:
$("#chk15849").bootstrapToggle('off');
// or
$("#chk15849").prop('checked', false).change();
, я получаю сообщение об ошибке
Uncaught RangeError: Превышен максимальный размер стека вызовов.
Посмотрев, как выполнить это действие, похоже, я делаю это правильно ... но, поскольку я получаю сообщение об ошибке, по-видимому, нет.Вот пример кода
Вот скрипка того, что я делаю.http://jsfiddle.net/4x5r09fv/
$('[type=checkbox]').change(function() {
$("#chk15849").bootstrapToggle('off');
//$("#chk15849").prop('checked', false).change();
})
})
Оба этих примера приводят к ошибке Uncaught Range
Это я начинаю с простой работы над более сложной страницей.Но сейчас мне нужно выяснить это.
Когда вы запустите скрипку, вы увидите, что при загрузке включен первый переключатель.При нажатии на второй переключатель происходит изменение события, и первый переключатель отключается.Это когда ошибка происходит в инструментах разработчика Chrome.
Любая помощь будет отличной.
- Дополнительная информация.
Асвин Кумар предоставил решение.Но опираясь на то, что он сказал.Что делать, если это более динамично?Так что, если количество переключателей меняется, и мы хотим, чтобы все переключатели были выключены, кроме включенного.Как это сделано?Я нашел этот код
$(".toggle").change(function () {
if ($(this).is(":checked")) {
$('[id^="toggle"]').not(this).each(function () {
$(this).bootstrapToggle('off');
});
}
});
Однако этот код начинается так же, как у меня, и также выдает «Uncaught RangeError: Превышен максимальный размер стека вызовов».Еще раз, я не уверен, как изменить код, чтобы он не выдавал ошибку и допускал переключение всех, кроме одного.