|
|
|
| Всем привет. Вот написал свой скриптик, но где-то в нем ошибка, помогите разобраться.
</script>
function AppendValidation(fieldid, containerid, minlength, maxlength, regularex, showtext2)
{
var field = document.getElementById(fieldid);
var container2 = document.getElementById(containerid);
var text = document.createElement("div");
if (showtext2 == null && showtext2 != false)
container2.appendChild(text);
text.innerHTML = " ";
field.onkeyup = function()
{
if (field.value.length == 0)
{
text.innerHTML = " ";
return;
}
if (minlength != null && field.value.length < minlength)
{
text.innerHTML = "Длина E-maila меньше допустимого";
return;
}
if (regularex != null && field.value.match(regularex) == null)
{
text.innerHTML = "E-mail не соответствует формату";
return;
}
text.innerHTML = "E-mail удовлетворяет всем условиям";
return;
}
}
</script>
|
Ниже код вставляю в хтмл форму:
<input size="31" maxlength="25" type="text" name="ma_il" id="ma_il" />
<div id="STATUS"></div>
<script type="text/javascript" language="Javascript">
AppendValidationStandart("ma_il", "STATUS", 5, 100,"^(\\w+)@(\\w+)\\.(\\w+){2,3}$");
</script>
|
Вот этот вариант скрипта рабочий, но я некак не могу заставить его чтобы при загрузке формы задавалось пустое поле в выводе статуса ошибки, делаю для того чтобы форма не прыгала при отображении текста.
<script>
function AppendValidation(fieldid, errorhndl, minlength, maxlength, regularex)
{
var field = document.getElementById(fieldid);
field.onkeyup = function()
{
if (field.value.length == 0)
{
errorhndl(fieldid, "NULL");
return;
}
if (minlength != null && field.value.length < minlength)
{
errorhndl(fieldid, "OVERMIN");
return;
}
if (regularex != null && field.value.match(regularex) == null)
{
errorhndl(fieldid, "NOTMATCH");
return;
}
errorhndl(fieldid, "OK");
}
}
function AppendValidationStandart(fieldid, statusid , minlength, maxlength, regularex)
{
var errorhndl = function ErrorHandler(field, errorstate)
{
var status = document.getElementById(statusid);
switch (errorstate)
{
case "NULL":
status.innerHTML = " ";
break;
case "OK":
status.innerHTML = "E-mail удовлетворяет всем условиям";
status.className = "pc-green";
break;
case "OVERMIN":
status.innerHTML = "Длина E-maila меньше допустимого";
status.className = "pc-critical";
break;
case "NOTMATCH":
status.innerHTML = "E-mail не соответствует формату";
status.className = "pc-critical";
break;
}
}
AppendValidation(fieldid, errorhndl, minlength, maxlength, regularex);
}
</script>
|
| |
|
|
|
|
|
|
|
для: TetRiska
(20.02.2009 в 03:26)
| |
.match (/[a-z0-9_]+\@[a-z0-9_]+\.[a-z]{2,4}/)
|
| |
|
|
|
|
|
|
|
для: PAT
(20.02.2009 в 03:49)
| | Не совсем понял :( То что Вы указали у меня верно и работает со скриптом, что нижний..Верхний сам писал, вот не пойму где допустил там ошибку. | |
|
|
|
|
|
|
|
для: TetRiska
(20.02.2009 в 04:28)
| | Положим, что моё имя - Владимир.
Положим, я должен ввести его в какое-то поле.
Положим, я ошибся при вводе.
Положим, программа отследила эту ошибку.
Программа, полагаете, должна указать мне, как именно я извратил собственное имя? :-)
ИМХО, в любом случае вполне ДОСТАТОЧНЫМ будет указать, что введённый e-mail неверен - а далее пусть владелец этого e-mail'a САМ соображает - где именно он совершил ошибку.
А то получится, как здесь - http://www.metronews.ru/news3/zags_moskvy_ne_hochet_registrirovat_rebenka_pod_imenem_boch_rvf_260_602/ - напишет человек, что его зовут БОЧ РВФ 260602, а ваша программа "упрётся рогом" и давай ему объяснять, что цифр в человеческом имени быть не может. :-) | |
|
|
|
|
|
|
|
для: PAT
(20.02.2009 в 04:44)
| | )) Но все же мне хотеться, чтобы ввод сопровождался несколькими подсказками! И при вводе программа проверяет правильность символов. | |
|
|
|
|
|
|
|
для: TetRiska
(20.02.2009 в 04:53)
| | >"Но все же мне хотеться..."
Для вас русский язык неродной? | |
|
|
|
|
|
|
|
для: PAT
(20.02.2009 в 07:04)
| | Зачем придираться к словам? Писал на скорую руку и в поздний час...Да не родной и что с этого? | |
|
|
|