Разное поведение браузеров при работе с checkbox
Есть такой вот простенький чекбокс. Проблема в том, что некоторые браузеры некорректно себя веду, а некоторые - корректно. Как можно это исправить?
Используется jquery 1.11.1
<div class="radio_select">
<button class="toggleSel circlesSel" type='button'>
<span class="flaticon-meeting"></span>
<span>Добавить</span>
</button>
<div class="radio_list">
<div class="com">
<div class="checkboxwrap">
<label for="29">
<input type="checkbox" class="checkbox" id="29">
Wife</label>
</div>
</div>
</div>
</div>
$('.checkboxwrap').on('mousedown',e => {
if($(e.target)[0].tagName == 'LABEL' && $(e.target).children('input').prop('checked') || $(e.target)[0].tagName == 'INPUT' && $(e.target).prop('checked')){
conf($(e.target));
} else {
console.log(12)
}
});
function conf(e){
let check = confirm('Точно?'),
input = $('.checkboxwrap input');
if(e[0].tagName == 'LABEL'){
if(check) {
input.eq($('label').index(e)).prop('checked',false);
console.log(13)
} else {
input.eq($('label').index(e)).prop('checked',true);
}
}
else{
if(check) {
input.eq($('input').index(e)).prop('checked',false);
console.log(14)
} else {
input.eq($('input').index(e)).prop('checked',true);
}
}
}
|
Цитата:
Цитата:
Как я понял, вы хотите, чтобы галочку можно было снять с подтверждением!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<div class="radio_select">
<button class="toggleSel circlesSel" type='button'>
<span class="flaticon-meeting"></span>
<span>Добавить</span>
</button>
<div class="radio_list">
<div class="com">
<div class="checkboxwrap">
<label for="29">
<input type="checkbox" class="checkbox" id="29">
Wife
</label>
</div>
</div>
</div>
</div>
<script>
$(".checkbox").on("change", ({ target }) => {
if(!target.checked) {
const check = confirm('Точно?');
target.checked = !check;
}
});
</script>
</body>
</html>
Там на сайте jQuery они пишут write less, do more, а куда не посмотри (где используется jQuery), получается write more, do less! Без jQuery
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<div class="radio_select">
<button class="toggleSel circlesSel" type='button'>
<span class="flaticon-meeting"></span>
<span>Добавить</span>
</button>
<div class="radio_list">
<div class="com">
<label>
<input type="checkbox" class="checkbox">
Wife
</label>
</div>
</div>
</div>
<script>
document.addEventListener("change", ({ target }) => {
if(target.matches(".checkbox") && !target.checked) {
const check = confirm('Точно?');
target.checked = !check;
}
});
</script>
</body>
</html>
|
| Часовой пояс GMT +3, время: 14:10. |