Описание:
Изменения в версии 2.0:
- Проверка каждого поля производится налету при вводе данных
- Полностью переписан механизм проверки на доступность логина
- Мгновенная смена индикатора проверки
- Теперь данные формы не обнуляются при неправильном вводе капчи
- Установка упрощена до одного действия - полной замены формы регистрации
- Подключен примитивный антиспам от пользователей с одноразовыми е-майлами
- Код работает на всех версиях jQuery более 1.3.2 (Включительно)
Установка:
В форме регистрации пользователей замените все на:
Code
<table border="0" cellspacing="1" cellpadding="2" width="100%" class="manTable" id="siM63">
<?if($ERROR$)?>
<tr id="siM1"><td colspan="2" align="center" class="manTdError" id="siM2">$ERROR$</td></tr><tr><td height="10" class="manTdSep" colspan="2"><br></td></tr>
<?endif?>
<?if($LOGIN_FL$)?>
<tr id="siM42">
<td class="manTd1" width="35%" id="siM43">$LOGIN_SIGN$</td><td class="manTd2" id="siM44">$LOGIN_FL$</td>
<td width="70px">
<img style="vertical-align:-4px;" src="http://s58.ucoz.net/.s/img/icon/se.png" onclick="chek();" title="Проверить доступность Логина" />
<img src="http://s58.ucoz.net/.s/img/wd/3/ajaxs.gif" style="vertical-align:-5px;display:none;" id="aldr" />
<img src="http://s58.ucoz.net/.s/img/icon/ok.png" title="Логин свободен!" style="vertical-align:-5px;display:none;cursor:help;" id="aok" />
<img src="http://s58.ucoz.net/.s/img/icon/er.png" title="Логин занят или содержит запрещённые символы" style="vertical-align:-5px;display:none;cursor:help;" id="aer" />
</td>
</tr>
<tr><td height="10" class="manTdSep" colspan="2">
</td></tr><br>
<?endif?>
<?if($PASSWORD_FL$)?>
<tr id="siM45"><td class="manTd1" id="siM46">$PASSWORD_SIGN$</td><td class="manTd2" id="siM47">$PASSWORD_FL$</td>
<td width="70px">
<img src="http://s58.ucoz.net/.s/img/icon/ok.png" title="Длинна пароля допустима" style="vertical-align:-5px;display:none;cursor:help;" id="aokp" />
<img src="http://s58.ucoz.net/.s/img/icon/er.png" title="Пароль слишком короткий" style="vertical-align:-5px;display:none;cursor:help;" id="aerp" />
</td>
</tr>
<?endif?>
<?if($PASSWORD1_FL$)?>
<tr id="siM48"><td class="manTd1" id="siM49">$PASSWORD1_SIGN$</td><td class="manTd2" id="siM50">$PASSWORD1_FL$</td>
<td width="70px">
<img src="http://s58.ucoz.net/.s/img/icon/ok.png" title="Пароли совпали" style="vertical-align:-5px;display:none;cursor:help;" id="aokp2" />
<img src="http://s58.ucoz.net/.s/img/icon/er.png" title="Пароли не совпадают" style="vertical-align:-5px;display:none;cursor:help;" id="aerp2" />
</td>
</tr><tr><td height="10" class="manTdSep" colspan="2"></td>
</tr><br>
<?else?><tr><td height="10" class="manTdSep" colspan="2"><hr class="manHr" /></td></tr>
<?endif?>
<?if($NAME_FL$)?>
<tr id="siM51"><td class="manTd1" id="siM52">$NAME_SIGN$</td><td class="manTd2" id="siM53">$NAME_FL$</td>
<td width="70px">
<img src="http://s58.ucoz.net/.s/img/icon/ok.png" title="Ладно, верим, что это ваше настоящее имя" style="vertical-align:-5px;display:none;cursor:help;" id="aokp3" />
<img src="http://s58.ucoz.net/.s/img/icon/er.png" title="Пожалуйста, введите своё имя" style="vertical-align:-5px;display:none;cursor:help;" id="aerp3" />
</td>
</tr><tr><td height="10" class="manTdSep" colspan="2"></td></tr>
<?endif?>
<?if($EMAIL_FL$)?>
<tr id="siM54"><td class="manTd1" id="siM55">$EMAIL_SIGN$</td><td class="manTd2" id="siM56">$EMAIL_FL$</td>
<td width="70px">
<img src="http://s58.ucoz.net/.s/img/icon/ok.png" title="Спасибо, вроде всё путём" style="vertical-align:-5px;display:none;cursor:help;" id="aokp4" />
<img src="http://s58.ucoz.net/.s/img/icon/er.png" title="Что то не похоже это на адрес электронки" style="vertical-align:-5px;display:none;cursor:help;" id="aerp4" />
</td>
</tr><tr><td height="10" class="manTdSep" colspan="2"><br></td></tr>
<?endif?>
<?if($GENDER_FL$)?>
<tr id="siM27"><td class="manTd1" id="siM28">$GENDER_SIGN$</td><td class="manTd2" id="siM29">$GENDER_FL$</td></tr><tr><td height="10" class="manTdSep" colspan="2"><br></td></tr>
<?endif?>
<tr id="siM27"><td class="manTd1" id="siM28">$SECURITY_CODE_SIGN$</td><td class="manTd2" id="siM29">$SECURITY_CODE_FL$</td></tr><tr><td height="10" class="manTdSep" colspan="2"><br></td></tr>
<tr id="siM64"><td class="manTdBut" colspan="2" align="center" id="siM65"><input class="manFlSbm" id="siF20" type="submit" name="sbm" value="$SUBMIT_SIGN$" /></td></tr>
</table>
<script>
// Умная форма регистрации 2.0 by Apocalypse
function efl() {
_uWnd.alert('Поле не должно быть пустым', 'Внимание!', {align:'left', w:300, h:80, name:'ef', icon:'http://s6.ucoz.net/.s/img/icon/nw.png'});
}
function eml() {
_uWnd.alert('Проверьте правильность заполнения поля! На этот электронный адрес будет выслан код подтверждения', 'Внимание!', {align:'left', w:300, h:80, name:'ef', icon:'http://s6.ucoz.net/.s/img/icon/nw.png'});
}
function chek() {
$('#aok, #aer').hide();
var a = $('#siF13').val().replace('-', '~');
$('#aldr').show();
$.get('/index/8-0-'+a, function(apodata) {
$('#aldr').hide();
if($('#siF13').val() == '') {
efl();
$('#aer').show();
} else if(apodata.indexOf('не найден') != -1) {
$('#aok').show();
} else {
$('#aer').show();
};
});
};
$('#siF13').keyup(function() {
chek();
});
$('.manFlPassw').keyup(function() {
$('#aokp, #aerp').hide();
var sss = $(this).val().length;
if(sss < 1) {
efl();
$('#aerp').show();
} else if (sss < 6) {
$('#aerp').show();
} else {
$('#aokp').show();
}
});
$('.manFlPassw1').keyup(function() {
$('#aokp2, #aerp2').hide();
var sl1 = $(this).val();
if(sl1 != $('.manFlPassw').val()) {
$('#aerp2').show();
} else if (sl1 == '') {
efl();
$('#aerp2').show();
} else {
$('#aokp2').show();
}
});
$('.manFlaName').keyup(function() {
$('#aokp3, #aerp3').hide();
var t1 = $(this).val();
if(t1 == '') {
$('#aerp3').show();
efl();
} else {
$('#aokp3').show();
}
});
$('.manFlaEmail').keyup(function() {
$('#aokp4, #aerp4').hide();
$('#g2g').html($(this).val());
var em1 = $('#g2g:contains("@")').length;
var em2 = $('#g2g:contains(".")').length;
var em3 = $(this).val();
if(em1 != em2) {
$('#aerp4').show();
} else if(em3 == '') {
efl();
$('#aerp4').show();
} else if(em1 == 0) {
$('#aerp4').show();
} else if(em2 == 0) {
$('#aerp4').show();
} else {
eml();
$('#aokp4').show();
}
});
$('#siF13').attr('placeholder', 'Только русские, латинские буквы и цифры');
$('#siF14').attr('placeholder', 'Чем сложнее, тем лучше');
$('#siF15').attr('placeholder', 'Повторим наш суперсложный пароль');
$('#siF16').attr('placeholder', 'Было бы здорово знать ваше настоящее имя');
$('#siF17').attr('placeholder', 'Укажите ваш реальный е-майл');
$('#fCode').attr('placeholder', 'Он справа');
$('.manFlaEmail').focus(function() {
$('#secImg').click();
}).keydown(function(a) {
if(a.keyCode == 13) {
return false;
};
});
apoarr = ['rtrtr', 'mailspeed']
antiapo = setInterval(function() {
for(i=0;i<10;i++) {
if($('.manFlaEmail').val().indexOf(apoarr[i]) != -1) {
clearInterval(antiapo);
new _uWnd('id', 'Внимание', 200, 70, {autosize:0}, 'Вы заблокированы системой антиспам');
$('.manFlSbm, input[name="code"], input[name="email"]').remove();
setInterval(function() {
$('#secImg').click();
}, 300);
};
};
}, 300);
// ApoTeam (c) 2012
</script>