Валидация пароля и подтверждения при регистрации в битрикс

Встала задачка сделать валидацию пароля и его подтверждения в стандартной форме регистрации сайта под управлением Битрикс. Проверять будем с помощью javascript прямо на лету: на количество символов в пароле и совпадениt подтверждения пароля...пароля.

Итак: имеем страницу на сайте, на которую вывели стандартную форму регистрации main.register. Копируем ее шаблон в шаблон своего сайта и открываем на редактирование template.php это шаблона

Находим два input которые отвечают за пароль и подтверждение пароля

Примерно: 86-ая строчка - ввод пароля

<input size="30" type="password" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" autocomplete="off" class="bx-auth-input" />

и 103-ая строчка- подтверждение пароля

<input size="30" type="password" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" autocomplete="off" />

И приводим каждое вот к такому виду:

Ввод пароля:

<input type="password" name="REGISTER[<?=$FIELD?>]" autocomplete="off" class="bx-auth-input" id="pass_id" maxlength="20" size="40"
onkeypress="CountPass('pass_id')" onfocus="CountPass('pass_id')"
onkeyup="CountPass('pass_id')" value="" />

<div id="pass_correct"></div>

<i>Вы ввели <span id="pass_view">0</span> символов</i>

Подтверждение пароля:

<input type="password" name="REGISTER[<?=$FIELD?>]" autocomplete="off" size="30" id="repass_id"
onkeypress="CorrectPass('repass_id')" onfocus="CorrectPass('repass_id')"
onkeyup="CorrectPass('repass_id')" value="" />

<div class="arrows_ook" id="repass_correct"></div>

И размещаем тут же или во внешнем подключаемом файле вот такой скрипт- комментарии по скрипту внутри


<script type="text/javascript">

function CountPass(item) {
//Назначаем ID поля с паролем
var item_view = 'pass_view';
//назначаем ID блока для вывода сообщения
var item_correct = 'pass_correct';
//Проверяем колличество символов в поле
document.getElementById(item_view).innerHTML = document.getElementById(item).value.length++;
//если символов 6 и более
if (document.getElementById(item).value.length >= 6) {
document.getElementById(item_correct).innerHTML = '<img src="/пути к картинке ОКЕЙ">';
}
//Если смволов меньше шести
else {
document.getElementById(item_correct).innerHTML = '<img src="/пути к картинке НЕ ОКЕЙ">';
}
}

function CorrectPass(item) {
//Проверяем совпадение пароля с полем ввода пароля
var item_pass_value = document.getElementById('pass_id').value;
var item_pass_length = document.getElementById('pass_id').value.length
//назначаем ID блока для вывода сообщения иколичество символов
var item_correct = 'repass_correct';
if (item_pass_length >= 6) {
//Если все совпало
if (document.getElementById(item).value == item_pass_value) {
document.getElementById(item_correct).innerHTML = '<img src="/пути к картинке ОКЕЙ">';
document.getElementById('check_repass').value = 1;
}
//Если не совпало
else if (document.getElementById(item).value.length >= 6) {
document.getElementById(item_correct).innerHTML = '<img src="/пути к картинке НЕ ОКЕЙ">';
document.getElementById('check_repass').value = 0;
}
}
checkAll();
} </script>

Должно получиться примерно так

И не большая фенька: замена первой буквы на заглавную в полях имя и фамилия, если пользователь набрал все с маленькой

Поле, примерно в 136-ой строчке:

<input size="30" type="text" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" />

Меняем на

<script type="text/javascript">
function name_up()
{
if(document.getElementById("REGISTER[NAME]").value.length==1) document.getElementById("REGISTER[NAME]").value=document.getElementById("REGISTER[NAME]").value.toUpperCase();
if(document.getElementById("REGISTER[LAST_NAME]").value.length==1) document.getElementById("REGISTER[LAST_NAME]").value=document.getElementById("REGISTER[LAST_NAME]").value.toUpperCase();
}
</script>

<input size="30" type="text" name="REGISTER[<?=$FIELD?>]" id="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" onkeydown="return name_up();"/><

Пример работы здесь Магазин Березка

Просмотров: 12115 | Комментариев: 2
Внимание! все сообщения проходят премодерацию. Ваше сообщение появится после проверки
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Защита от автоматических сообщений
Загрузить файл
Нажимая кнопку "Отправить", Вы принимаете условия
Политики конфиденциальности и обработки персональных данных
Guest
Ну как бы запрос на регистрацию можно подменить запросом и ваш JS прикурит! Да и вообще клиентская валидация должна совпадать с серверной!
Имя Цитировать
Михаил Базаров
Цитата
Guest пишет:
Ну как бы запрос на регистрацию можно подменить запросом и ваш JS прикурит! Да и вообще клиентская валидация должна совпадать с серверной!
JS однозначно прикурит, но иногда, когда нужно просто реализовать функционал, при этом не сильно нагрузить сервер - проще поступить именно так. Хотя, конечно вы правы- все должно быть идеально- не всегда это нужно, чаще никогда
Имя Цитировать

Цены на разработку сайта или приложения

Что бы узнать точные стоимость и срок разработки:
достаточно, как можно подробнее, заполнить опросник и выслать на электронную почту info@bazarow.ru.
После ознакомления, смогу задать уточняющие вопросы и оценить.

В стоимость разработки уже включены и не требуют доплат:
  • Лицензия на необходимую редакцию 1С-Битрикс: Управление сайтом и лицензии на дополнительные модули, если требуются для конкретного проекта.
  • Применение технологии композитный сайт: Оптимизация скорости работы проекта под нагрузками.
  • Один год, бесплатной, технической поддержки от 1С-Битрикс
Интернет-магазин от 250 000 рублей
Полно-комплексная разработка интернет-магазина любой сложности. Интеграция с 1С, службами доставки и оплаты. Внутренняя СЕО оптимизация перед запуском.
Сайт компании от 200 000 рублей
Сайт с каталогом товаров или услуг, без функционала магазина. Включает формы обратной связи внутри карточек каталога. Любое количество статичных и динамичных разделов.
Инфоресурс от 200 000 рублей
Портал или доска объявлений с большим количеством разделов. Возможность включения форумов, блогов, регистрации пользователей, внутри сайтовая социальная сеть.
Сайт на готовом решении от 40 000 рублей
Подбор решения из более 200-от готовых сайтов, в соответствии с тематикой бизнеса. Запуск сайта на сервере или хостинге, со всеми настройками. Не большие доработки под задачу.
Мобильное приложение от 200 000 рублей

Кроме сайтов, занимаюсь разработкой мобильных приложений на технологии Apache Cordova. Это полноценные приложения, которые публикуются и распостранияются через официальные магазины GooglePlay и AppStore

  • Полная интеграция с базой данных, основного сайта.
  • Вывод каталогов продукции и услуг, прямо в приложении.
  • Персональные разделы пользователей с историей заказов.
  • Прямой доступ к устройству: GPS, камера, звонки и медиабиблиотека

attention