Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Проверка формы хитрым способом (http://www.flasher.ru/forum/showthread.php?t=26878)

INK• 06.02.2002 22:05

Проверка формы хитрым способом
 
Приветствую!
расклад: имееться набор функций (см. ниже) для проверки полей формы. Имееться масив с полями формы.
имееться функция ValidateForm();
проблема: когда сразу надажать на т.е. запустить функцию ВалидейтФорм... окно трейс получяеться пустое :mad: только после того как чот то напишеш в поле оно выдает соотвецтвенный результат фелс исли заполнено.. а потом если стреть то тру.
еще есть функция которая управляет переходом курсора в полях... вот она
// TabOrder check------------

_root.TabSelection = function (fields)
{
_focusrect = false;
this.fields = fields.split(",");
this.field = null;
};
_root.TabSelection.prototype.select = function ()
{
if (Key.isDown(9)) {
this.field = Selection.getFocus();
for (var i = 0; i<this.fields.length; i++)
{
if (this.fields[i] == this.field)
{
if (i == this.fields.length-1)
{
i = 0;
}else {
i++;
}
Selection.setFocus(this.fields[i]);
break;
}
}
}
};
_root.Tab = new _root.TabSelection ("_level0.forma.fname,_level0.forma.lname,_level0.forma.email,_level0.forma.cname,_level0.forma.telno,_level0.forma.comments");

///---------------------------------
чего надо добиться.
для "fname","lname","cname","comments");
применить функцию isEmpty()
для поля "email" isEmail()
а для "telno" isDigit.
если все поля заполнены как нужно то do.something();
если нет то возвратить в те поля которые заполнены неправилно предуприждение = "Неправильно что-то тут!"
при этом хотелось бы использовать для всего этого один обЪект _root.Tab = new _root.TabSelection.

Предложения есть? спасибо.

var whitespace = " \t\n\r";
var defaultEmptyOK = false
//
//--- functions set 2 validate form---
String.prototype.isEmpty = function(){
var s = this.toString();
return ((s == null) || (s.length == 0))

}
String.prototype.isWhitespace = function(){
var s = this.toString();
if (isEmpty(s)) return true;
for (i=0;i<s.length;i++) {
if (s.charCodeAt(i) >= 32) return false;
}
return true;
}
String.prototype.isDigit = function(){
c = this.toString();
return ((c >= "0") && (c <= "9"))
}

String.prototype.isEmail = function(eok){
//True if string s is a valid email address.
var s = this.toString();
if (this.isEmpty())
if (arguments.length == 0) return defaultEmptyOK;
else return arguments[0];
if (this.isWhitespace()) return false;
var i = 1;
var sLength = s.length;
while ((i < sLength) && (s.charAt(i) != "@")){
i++;
}
if ((i >= sLength) || (s.charAt(i) != "@")) return false;
else i += 2;
while ((i < sLength) && (s.charAt(i) != ".")){
i++
}
if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
else return true;
}

ValidateForm = function ()
{
var FormFields = new Array ("fname","lname","email","cname","telno","comments");
for (var pole in FormFields)
{
trace(eval(FormFields[pole]).isEmpty())

}


};

Junge 07.02.2002 01:15

давай исходник

INK• 07.02.2002 06:32

вот он
 
Вложений: 1
всего 5 к

Хрюндик 07.02.2002 12:42

извини, мне лень было читать, но помойму трабла в том что у незаполненных полей значение null, вот на это и надо проверять их

INK• 07.02.2002 15:46

:) :)
 
Цитата:

Оригинал написал(а) Хрюндик
извини, мне лень было читать, но помойму трабла в том что у незаполненных полей значение null, вот на это и надо проверять их
:) :)

извени.. мне лень было отвечять... но вся правда в том что действительно таки значение нулл! или андифаинд у пустых полей.
ты братело еще раз прости миня.. но это уже второй раз ты даеш советы не поделу и НЕ о деле.

поясняю.. в данном случяе речь идет об использовании хитрого приема в програмировании.. т.е. хочеться написать очень хитрый код ... пожарить яишницу яйца не розбив.
конечно можно было бы сделать и проще , но сделать хочю правильнее. ;) ;) ;)

Хрюндик 07.02.2002 17:37

Изивните, больше не буду...
Щас покопаюсь может и пойму в чем дело ...

Хрюндик 07.02.2002 18:03

Покапался я и понял одну очень умную вешь :

делай как проще, а то будет много проблем.

Я понимаю, что краткость сестра таланта, но зачем же так?
Почему нельзя сделать все по-простому.
Если надо могу даже сам сделать. :)
А так мне понравилось копаться в твоем исходнике, INC
Я еще буду копаться, очень охота понять как эта штука работает...

INK• 07.02.2002 20:24

ну копайся.. типа ройся ... ;) ;) просто делать нельзя..
пока ты там копался я придумал сделать валидатор мыла на РэгЭкс.... это типа еще сложнее..
успехов
Цитата:

Оригинал написал(а) Хрюндик
Покапался я и понял одну очень умную вешь :

делай как проще, а то будет много проблем.

Я понимаю, что краткость сестра таланта, но зачем же так?
Почему нельзя сделать все по-простому.
Если надо могу даже сам сделать. :)
А так мне понравилось копаться в твоем исходнике, INC
Я еще буду копаться, очень охота понять как эта штука работает...



Часовой пояс GMT +4, время: 18:49.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.