Очень удобная функция, когда при регистрации на сайте, непосредственно, при вводе логина, рядом отображается информация, свободен, или занят данный логин. Особенно, эта функция нужна на сайтах с большим количеством уже зарегистрированных пользователей. Итак, все подробно, по шагам.
1. Вставляется в шаблон "Персональная страница пользователя" сразу после :
2. Вставляем скрипт в шаблон "форма регистрации пользователей" около:
Code
$LOGIN_FL$
Code
<span id="msgL" style="font:7pt;"> </span> <input type="hidden" id="tch" value="*"> <script type="text/javascript"> // // var Lok; var L = document.getElementById('siF13'); L.style.width = '50%'; L.onchange = 'PrepareLoginToChecking();SubmitLoginToCheck()'; if(navigator.appName=='Microsoft Internet Explorer'){L.attachEvent('onchange', function() {PrepareLoginToChecking();SubmitLoginToCheck()},true)}else{ L.addEventListener('change', function() {PrepareLoginToChecking();SubmitLoginToCheck()}, true)} var lmsg = document.getElementById('msgL'); function checkLogin(){ if (L.value.match(/[^a-zA-Z0-9\-\_\@\%\{\}\[\]\(\)\u0080-\uFFFF]/)){ Lok=0; document.getElementById('msgL').innerHTML='<img border="0" src="http://src.ucoz.ru/img/icon/er.png" align="absmiddle" width="16" height="16"> В логине присутствуют недопустимые символы'; } else if (L.value.length<2){ Lok=0; document.getElementById('msgL').innerHTML='<img border="0" src="http://src.ucoz.ru/img/icon/er.png" align="absmiddle" width="16" height="16"> Минимальная длина логина <b>2</b> символа'; } else if (L.value.length>25){ Lok=0; document.getElementById('msgL').innerHTML='<img border="0" src="http://src.ucoz.ru/img/icon/er.png" align="absmiddle" width="16" height="16"> Максимальная длина логина <b>25</b> символов'; } else { Lok=1; document.getElementById('msgL').innerHTML='<img border="0" src="http://src.ucoz.ru/img/icon/ok.png" align="absmiddle" width="16" height="16"> Логин введён корректно'; } } function PrepareLoginToChecking() { var original=("-").split("*"); var neww=("~").split("*"); var xy=0; while(xy<=(original.length-1)) { var original1="/"+original[xy]+"/g"; document.getElementById("tch").value = L.value.replace(eval(original1), neww[xy]); xy++; } } function SubmitLoginToCheck() { checkLogin(); if(Lok != 1) { return false; } window.lf.location='/index/8-0-'+document.getElementById("tch").value+''; document.getElementById('msgL').innerHTML='<img src=\"http://src.ucoz.ru/img/wd/3/ajaxs.gif\" align=\"absmiddle\" border=\"0\"> Проверка логина...'; } function GetMessageAboutAvailableLogin() { checkLogin(); if(Lok != 1) { return false; } if(window.lf.document.getElementById('chUName')) { document.getElementById('msgL').innerHTML='<img src=\"http://src.ucoz.ru/img/icon/er.png\" align=\"absmiddle\" border=\"0\"> Логин занят'; } else { document.getElementById('msgL').innerHTML='<img src=\"http://src.ucoz.ru/img/icon/ok.png\" align=\"absmiddle\" border=\"0\"> Логин свободен'; } } </script> <iframe name="lf" src="/index/8-0-*" style="display:none;" height="1px" width="1px" frameborder="0" onload="GetMessageAboutAvailableLogin()"></iframe>
Скрипт успешно протестирован в браузерах:
* Microsoft Internet Explorer 7 * Opera 9.50 * Mozilla Firefox 2.0.0.6
Для корректной работы скрипта надо включить опцию "Просмотр пользовательских страниц" для гостей! В противном случае, всегда будет выдаваться сообщение о том, что логин свободен.