Ограничение длины пароля

Алексей Егин

Проверенные
Сообщения
45
Реакции
10
Баллы
8,105
Здравствуйте, как ограничить максимальную-минимальную длину пароля? Допустим 5-20 символов (5минимум-20макимум)

Спасибо.
 
Есть варианты какие-нибудь?)

В шаблоне register_form
Ищем

Код:
<fieldset>
     <dl class="ctrlUnit">
       <dt><label for="ctrl_password">{xen:phrase password}:</label></dt>
       <dd><input type="password" name="password" class="textCtrl OptOut" id="ctrl_password" autocomplete="off" /></dd>
     </dl>

     <dl class="ctrlUnit">
       <dt><label for="ctrl_confirm_password">{xen:phrase confirm_password}:</label></dt>
       <dd>
         <input type="password" name="password_confirm" class="textCtrl OptOut" id="ctrl_confirm_password" />
         <p class="explain">{xen:phrase enter_your_password_in_first_box_and_confirm_it_in_second}</p>
       </dd>
     </dl>
   </fieldset>

Заменяем
Код:
<fieldset>
     <dl class="ctrlUnit">
       <dt><label for="ctrl_password">{xen:phrase password}:</label></dt>
       <dd><input type="password" name="password" maxlength=15 class="textCtrl OptOut" id="ctrl_password" autocomplete="off" /></dd>
     </dl>

     <dl class="ctrlUnit">
       <dt><label for="ctrl_confirm_password">{xen:phrase confirm_password}:</label></dt>
       <dd>
         <input type="password" name="password_confirm" maxlength=15 class="textCtrl OptOut" id="ctrl_confirm_password" />
         <p class="explain">{xen:phrase enter_your_password_in_first_box_and_confirm_it_in_second}</p>
       </dd>
     </dl>
   </fieldset>

maxlength=15 --- указываем там сколько максимум можно вести в поле :)
 
попутный вопрос - возможно ли сделать предупреждение что длина пароля неправильная? и еще как задать минимум символов?
 
Последнее редактирование:
В шаблоне register_form
Ищем

Код:
<fieldset>
     <dl class="ctrlUnit">
       <dt><label for="ctrl_password">{xen:phrase password}:</label></dt>
       <dd><input type="password" name="password" class="textCtrl OptOut" id="ctrl_password" autocomplete="off" /></dd>
     </dl>

     <dl class="ctrlUnit">
       <dt><label for="ctrl_confirm_password">{xen:phrase confirm_password}:</label></dt>
       <dd>
         <input type="password" name="password_confirm" class="textCtrl OptOut" id="ctrl_confirm_password" />
         <p class="explain">{xen:phrase enter_your_password_in_first_box_and_confirm_it_in_second}</p>
       </dd>
     </dl>
   </fieldset>

Заменяем
Код:
<fieldset>
     <dl class="ctrlUnit">
       <dt><label for="ctrl_password">{xen:phrase password}:</label></dt>
       <dd><input type="password" name="password" maxlength=15 class="textCtrl OptOut" id="ctrl_password" autocomplete="off" /></dd>
     </dl>

     <dl class="ctrlUnit">
       <dt><label for="ctrl_confirm_password">{xen:phrase confirm_password}:</label></dt>
       <dd>
         <input type="password" name="password_confirm" maxlength=15 class="textCtrl OptOut" id="ctrl_confirm_password" />
         <p class="explain">{xen:phrase enter_your_password_in_first_box_and_confirm_it_in_second}</p>
       </dd>
     </dl>
   </fieldset>

maxlength=15 --- указываем там сколько максимум можно вести в поле :-)


Вывод сколько осталось символов еще ввести.
В шаблоне register_form

Добавляем скрипт в любое место
Код:
<script>
$(document).ready(function(){
var value = $('#form input[name="password"]').attr('value') || '';
var initLength = Math.max((value ? (20 - value.length) : 20),0);
$('#name_coun').css('color', 'rgb('+(15*value.length)+', 0, 0)');
$('#name_coun').html(initLength.toString());
$('#form input[name="password"]').keyup(function(){
var value = $(this).attr('value') || '';
var lengthToGo = Math.max((20 - value.length),0);
$('#name_coun').css('color', 'rgb('+(15*value.length)+', 0, 0)');
$('#name_coun').html(lengthToGo.toString());
});
});
</script>

Потом к нашей форме добавляем id="form"
Примерно у вас так
Код:
<form action="{xen:link 'register/register'}" method="post" class="xenForm AutoValidator"
   data-fieldValidatorUrl="{xen:link register/validate-field}"
   data-normalSubmit="1"
>

Добавляем id="form"
Код:
<form action="{xen:link 'register/register'}" id="form" method="post" class="xenForm AutoValidator"
   data-fieldValidatorUrl="{xen:link register/validate-field}"
   data-normalSubmit="1"
>

Ищем
Код:
<dl class="ctrlUnit">
       <dt><label for="ctrl_password">{xen:phrase password}:</label></dt>
       <dd><input type="password" name="password" maxlength=20 class="textCtrl OptOut NumberPassword" id="ctrl_password" autocomplete="off" />
     </dl>

Заменяем на это
Код:
<dl class="ctrlUnit">
       <dt><label for="ctrl_password">{xen:phrase password}:</label></dt>
       <dd><input type="password" value="" name="password" maxlength=20 class="textCtrl OptOut NumberPassword" id="ctrl_password" autocomplete="off" /> осталось <span id="name_coun">20</span> символов
     </dl>

И вот демо:
Для просмотра этого контента нам потребуется ваше согласие на установку файлов cookie третьих лиц.
Более подробную информацию можно найти на нашей странице cookie.

Вот решение как сделать минимум символов.
Не менее 6 знаков, в том числе хотя бы одна цифра и буква

Ищем
Код:
<script>
$(document).ready(function(){
var value = $('#form input[name="password"]').attr('value') || '';
var initLength = Math.max((value ? (20 - value.length) : 20),0);
$('#name_coun').css('color', 'rgb('+(15*value.length)+', 0, 0)');
$('#name_coun').html(initLength.toString());
$('#form input[name="password"]').keyup(function(){
var value = $(this).attr('value') || '';
var lengthToGo = Math.max((20 - value.length),0);
$('#name_coun').css('color', 'rgb('+(15*value.length)+', 0, 0)');
$('#name_coun').html(lengthToGo.toString());
});
});
</script>

Заменяем на это
Код:
<script>
$(document).ready(function(){
var password = document.querySelector('input[type="password"]:valid').value;
var value = $('#form input[name="password"]').attr('value') || '';
var initLength = Math.max((value ? (20 - value.length) : 20),0);
$('#name_coun').css('color', 'rgb('+(15*value.length)+', 0, 0)');
$('#name_coun').html(initLength.toString());
$('#form input[name="password"]').keyup(function(){
var value = $(this).attr('value') || '';
var lengthToGo = Math.max((20 - value.length),0);
$('#name_coun').css('color', 'rgb('+(15*value.length)+', 0, 0)');
$('#name_coun').html(lengthToGo.toString());
});
});
   </script>

Ищем
Код:
<dl class="ctrlUnit">
       <dt><label for="ctrl_password">{xen:phrase password}:</label></dt>
       <dd><input type="password" value="" name="password" maxlength=20 class="textCtrl OptOut NumberPassword" id="ctrl_password" autocomplete="off" />осталось <span id="name_coun">20</span> символов
     </dl>

Заменяем
Код:
<dl class="ctrlUnit">
       <dt><label for="ctrl_password">{xen:phrase password}:</label></dt>
       <dd><input type="password" value="" pattern="(?=.*\d)(?=.*[a-zA-Zа-яА-Я]).{6,}" name="password" maxlength=20 class="textCtrl OptOut NumberPassword" id="ctrl_password" autocomplete="off" />осталось <span id="name_coun">20</span> символов
     </dl>

Если пользователь написал меньше чем 6 знаков. Выдает такое сообщение.

1r.png
 
Последнее редактирование:
Вот решение как сделать минимум символов.
Не менее 6 знаков, в том числе хотя бы одна цифра и буква


Ищем
Код:
<script>
$(document).ready(function(){
var value = $('#form input[name="password"]').attr('value') || '';
var initLength = Math.max((value ? (20 - value.length) : 20),0);
$('#name_coun').css('color', 'rgb('+(15*value.length)+', 0, 0)');
$('#name_coun').html(initLength.toString());
$('#form input[name="password"]').keyup(function(){
var value = $(this).attr('value') || '';
var lengthToGo = Math.max((20 - value.length),0);
$('#name_coun').css('color', 'rgb('+(15*value.length)+', 0, 0)');
$('#name_coun').html(lengthToGo.toString());
});
});
</script>

Заменяем на это
Код:
<script>
$(document).ready(function(){
var password = document.querySelector('input[type="password"]:valid').value;
var value = $('#form input[name="password"]').attr('value') || '';
var initLength = Math.max((value ? (20 - value.length) : 20),0);
$('#name_coun').css('color', 'rgb('+(15*value.length)+', 0, 0)');
$('#name_coun').html(initLength.toString());
$('#form input[name="password"]').keyup(function(){
var value = $(this).attr('value') || '';
var lengthToGo = Math.max((20 - value.length),0);
$('#name_coun').css('color', 'rgb('+(15*value.length)+', 0, 0)');
$('#name_coun').html(lengthToGo.toString());
});
});
   </script>

Ищем
Код:
<dl class="ctrlUnit">
       <dt><label for="ctrl_password">{xen:phrase password}:</label></dt>
       <dd><input type="password" value="" name="password" maxlength=20 class="textCtrl OptOut NumberPassword" id="ctrl_password" autocomplete="off" />осталось <span id="name_coun">20</span> символов
     </dl>

Заменяем
Код:
<dl class="ctrlUnit">
       <dt><label for="ctrl_password">{xen:phrase password}:</label></dt>
       <dd><input type="password" value="" pattern="(?=.*\d)(?=.*[a-zA-Zа-яА-Я]).{6,}" name="password" maxlength=20 class="textCtrl OptOut NumberPassword" id="ctrl_password" autocomplete="off" />осталось <span id="name_coun">20</span> символов
     </dl>

Если пользователь написал меньше чем 6 знаков. Выдает такое сообщение.

1r.png
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу