• Страница 1 из 1
  • 1
Модератор форума: Yuri_G  
Сообщество uCoz » Вебмастеру » Общие вопросы от вебмастеров » Скрипт чекбокса Политика конфиденциальности? (Описание темы)
Скрипт чекбокса Политика конфиденциальности?
Canon_L
Сообщений: 98
Репутация: 18

Сообщение # 1 | 15:21:53
Добрый день!

Взялись за проверку сайтов, нужно на страницу регистрации вставить чекбоксы Политика конфиденциальности и Пользовательское соглашение. Желательно сделать так, что б пока человек не поставит галки в этих чекбоксах кнопка "Завершить регистрацию" была неактивной. Т.е. что бы пользователь потом не мог предъявить, что он забыл согласиться с обработкой персональных данных или вовсе не захотел, а регистрацию прошёл.

Нашёл вот такой скрипт, но не получается его полноценно заставить работать: happy

Код
<script type="text/javascript">
$(document).ready(function() {

$('#siF20').attr("disabled", true);

$('#agreements').change(function() {
$('#siF20').attr('disabled', $('#agreements:checked').length == 0);
};);
};);
</script>


Не понимаю как в скрипт добавить второй чекбокс #policy dry

Код
<input type="checkbox" id="agreements" name="agreements">
<input type="checkbox" id="policy" name="policy">

<input class="manFlSbm" id="siF20" type="submit" name="sbm" value="Завершить регистрацию" />


Хочется спросить насколько он надёжный и кроссбраузерный?

Может есть что-то легче и надёжнее конкретно под UCOZ?

Спасибо!
Сообщение отредактировал Canon_L - Четверг, 11 Апр 2024, 18:03:35
K1l0
Сообщений: 106
Репутация: 26

Сообщение # 2 | 16:56:12
Здравствуйте.
Данный скрипт не будет работать. Попробуйте такое решение:
Установка: скопированный скрипт разместить перед закрывающим тегом </body> на странице "Страница регистрации пользователей".
Код
<script>
     $(function() {
         $('[type="submit"]').attr('disabled',true);
         $('form input[type="checkbox"]').on('click',function(){
         if($('#agreements').prop('checked') && $('#policy').prop('checked')){
             $('[type="submit"]').attr('disabled',false);
         }else{
             $('[type="submit"]').attr('disabled',true);
         }
         };);
     };);
     </script>

Логика работы: после загрузки страницы скрипт отключает кнопку "Зарегистрироваться" (или какое название у вас) и делает активной только в том случае, если выбраны чекбоксы с ID "agreements" и "policy". Если в процессе какой-либо из них отжать, то кнопка вновь становится неактивной.

P.S. Обратите внимание, что в предоставленном Вами примере у чекбоксов одинаковый атрибут name - это ошибка.
Сообщение отредактировал K1l0 - Четверг, 11 Апр 2024, 16:57:19
Canon_L
Сообщений: 98
Репутация: 18

Сообщение # 3 | 18:05:32
Цитата K1l0 ()
Данный скрипт не будет работать.

Он работает, но только с одним чекбоксом, в плане не понимаю как дописать второй #policy, чтоб скрипт срабатывал только когда оба чекбокса активны.

Смысл в том, что кнопке по умолчанию добавляется disabled="disabled". А при активации чекбокса снимается. Так через CSS можно назначить цвет и курсор активной кнопки и нет. Например, серая кнопка меняется на зелёную при выполнении условий скрипта.

Примерно так:

Код
.manFlSbm {
cursor: pointer;
background: rgba(0, 181, 77, 1.0);
transition: 0.2s linear;
}

.manFlSbm [disabled]{
background-color: rgba(155, 155, 155);
pointer-events: none;
}

.manFlSbm:hover {
background: rgba(0, 181, 77, 0.8);
}




Цитата K1l0 ()
Попробуйте такое решение

Что-то не хочет работать dry Первый из моего примера работает, но пока только с одним чекбоксом.

Цитата K1l0 ()
Обратите внимание, что в предоставленном Вами примере у чекбоксов одинаковый атрибут name - это ошибка.

Да, исправил, что б путаницы не было, бегло писал, не обратил внимания.
Прикрепления: 0022026.png (4.6 Kb) · 2302039.png (5.0 Kb)
Сообщение отредактировал Canon_L - Четверг, 11 Апр 2024, 18:27:42
K1l0
Сообщений: 106
Репутация: 26

Сообщение # 4 | 19:04:05
Цитата
Он работает, но только с одним чекбоксом, в плане не понимаю как дописать
второй #policy, чтоб скрипт срабатывал только когда оба чекбокса
активны.
Вы отредактировали исходное сообщение. Там был другой кусок кода.
ЦитатаЧто-то не хочет работать
Ссылку страницы где это требуется предоставьте. будет в разы быстрее, чем когда я буду пытаться угадать как именно у вас написана форма регистрации.
Цитата
Первый из моего примера работает, но пока только с одним чекбоксом.
У вас буквально скрипт написан для одного чекбокса с конкретным идентификатором.
Canon_L
Сообщений: 98
Репутация: 18

Сообщение # 5 | 22:42:16
Цитата K1l0 ()
Вы отредактировали исходное сообщение. Там был другой кусок кода.

Верно. Видимо совпадение – я правил сообщение в тот момент когда вы его читали.

Цитата K1l0 ()
Ссылку страницы где это требуется предоставьте. будет в разы быстрее, чем когда я буду пытаться угадать как именно у вас написана форма регистрации.

Я пока к форме не привязываюсь, что б не мешать людям регистрироваться. Просто делаю на рабочем столе. Подключил библиотеку Jquery и зная ID чекбоксов и кнопки пытаюсь воспроизвести сценарий.

Цитата K1l0 ()
У вас буквально скрипт написан для одного чекбокса с конкретным идентификатором.

Да, но 100% работает. Может можно его как-то поправить для чекбоксов #agreements и #policy, привязываясь к копке submit или её классу или ID? rolleyes
Сообщество uCoz » Вебмастеру » Общие вопросы от вебмастеров » Скрипт чекбокса Политика конфиденциальности? (Описание темы)
  • Страница 1 из 1
  • 1
Поиск: