Проверка формы хитрым способом
Приветствую!
расклад: имееться набор функций (см. ниже) для проверки полей формы. Имееться масив с полями формы. имееться функция 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()) } }; |
давай исходник
|
вот он
Вложений: 1
всего 5 к
|
извини, мне лень было читать, но помойму трабла в том что у незаполненных полей значение null, вот на это и надо проверять их
|
:) :)
Цитата:
извени.. мне лень было отвечять... но вся правда в том что действительно таки значение нулл! или андифаинд у пустых полей. ты братело еще раз прости миня.. но это уже второй раз ты даеш советы не поделу и НЕ о деле. поясняю.. в данном случяе речь идет об использовании хитрого приема в програмировании.. т.е. хочеться написать очень хитрый код ... пожарить яишницу яйца не розбив. конечно можно было бы сделать и проще , но сделать хочю правильнее. ;) ;) ;) |
Изивните, больше не буду...
Щас покопаюсь может и пойму в чем дело ... |
Покапался я и понял одну очень умную вешь :
делай как проще, а то будет много проблем. Я понимаю, что краткость сестра таланта, но зачем же так? Почему нельзя сделать все по-простому. Если надо могу даже сам сделать. :) А так мне понравилось копаться в твоем исходнике, INC Я еще буду копаться, очень охота понять как эта штука работает... |
ну копайся.. типа ройся ... ;) ;) просто делать нельзя..
пока ты там копался я придумал сделать валидатор мыла на РэгЭкс.... это типа еще сложнее.. успехов Цитата:
|
Часовой пояс GMT +4, время: 12:44. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.