Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.03.2019, 22:45
Новичок на форуме
Отправить личное сообщение для monte Посмотреть профиль Найти все сообщения от monte
 
Регистрация: 29.03.2019
Сообщений: 1

Разное поведение браузеров при работе с 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);
        }
    }
}
Ответить с цитированием
  #2 (permalink)  
Старый 29.03.2019, 23:25
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от monte
$(e.target)[0]
А это из какого ада?

Сообщение от monte
$(e.target)[0].tagName == 'LABEL' && $(e.target).children('input').prop('checked')  || $(e.target)[0].tagName == 'INPUT' && $(e.target).prop('checked')
А зачем вам такая проверка, если label с input именно так и работают?

Как я понял, вы хотите, чтобы галочку можно было снять с подтверждением!

<!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>

Последний раз редактировалось Malleys, 29.03.2019 в 23:33.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Коллеги, прошу помощи в реализации плавной смены блоков, при клике по checkbox? lebigan Общие вопросы Javascript 4 16.06.2017 10:42
Скрывать/показывать блок при выборе нескольких checkbox ru.scr Javascript под браузер 2 26.01.2017 01:23
ошибка при работе с jQuery autoComplete ogogo jQuery 0 22.10.2016 11:48
Выделение строки <select> при выборе checkbox DarkMaster13 Общие вопросы Javascript 4 14.04.2014 03:30
Выделение checkbox при условии атрибута... SashaBorandi jQuery 1 07.02.2009 14:18