Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.07.2008, 14:29
dimer вне форума Посмотреть профиль Отправить личное сообщение для dimer Найти все сообщения от dimer
  № 1  
Ответить с цитированием
dimer

Регистрация: Feb 2006
Сообщений: 31
По умолчанию Помогите сделать проверку!

Помогите пожалуйста вставить проверку введенных данных в строки.

Вот код:

Код:
tf_fmt = new TextFormat();
tf_fmt.color = "0x666666";
// Текстовое поле для имени
_root.createTextField("name_txt", 1, 10, 20, 300, 20);
with (name_txt) {
	border = true;
	borderColor = "0xCCCCCC";
	type = "input";
	multiline = false;
	text = "Введите ваше имя";
	setTextFormat(tf_fmt);
}
// При передачи фокуса текстовому полю убиваем всё что в нём написано
name_txt.onSetFocus = function() {
	this.text = "";
	delete this.onSetFocus;
};
// Текстовое поле для e-mail
_root.createTextField("mail_txt", 2, 10, 50, 300, 20);
with (mail_txt) {
	border = true;
	borderColor = "0xCCCCCC";
	type = "input";
	multiline = false;
	text = "Введите ваш телефон";
	setTextFormat(tf_fmt);
}
// При передачи фокуса текстовому полю убиваем всё что в нём написано
mail_txt.onSetFocus = function() {
	this.text = "";
	delete this.onSetFocus;
};
// Текстовое поле для сообщения
_root.createTextField("message_txt", 3, 10, 80, 300, 20);
with (message_txt) {
	border = true;
	borderColor = "0xCCCCCC";
	type = "input";
	multiline = false;
	text = "Введите ваш E-mail";
	setTextFormat(tf_fmt);
}
// При передачи фокуса текстовому полю убиваем всё что в нём написано
message_txt.onSetFocus = function() {
	this.text = "";
	delete this.onSetFocus;
};
// Кнопка "Отправить"
_root.attachMovie("button", "but_mc", 4, {_x:10, _y:280});
but_mc.createTextField("tf", 1, 0, 0, 300, 20);
b_fmt = new TextFormat();
b_fmt.color = "0xFFFFFF";
b_fmt.align = "center";
with (but_mc.tf) {
	selectable = false;
	text = "Отправить заявку";
	setTextFormat(b_fmt);
}
// При нажатии на кнопку запускаем функцию F_sendMail
but_mc.onPress = function() {
	F_sendMail(name_txt.text,mail_txt.text,message_txt.text);
};
//Функция отправки сообщения
F_sendMail = function (Name, Mail, Message) {
	// Создаём мувик для хранения переменных
	_root.createEmptyMovieClip("v", 120);
	v.name = Name;
	v.mail = Mail;
	v.message = Message;
	// Отправляем данный php - скрипту
	v.loadVariables("mail.php", "POST");
};
// Что бы не было проблем с кодировкой при передачи текста php
System.useCodepage = true;

Старый 13.07.2008, 14:40
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 2  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Здравствуйте dimer!

А в чем, собственно, проблема!!?

1. Используйте обработчик onChanged и в нем проверяйте корректность введеных данных.
Совет: Использование with {} допустимо, но не рекомендуемо, в особенности в циклах - замедляет работу скрипта. Старайтесь обходиться без него (with).
__________________
Случайность, господа, это знаете ли непознанная необходимость.

Старый 13.07.2008, 14:44
dimer вне форума Посмотреть профиль Отправить личное сообщение для dimer Найти все сообщения от dimer
  № 3  
Ответить с цитированием
dimer

Регистрация: Feb 2006
Сообщений: 31
интересно, тут все такие умные или только я такой глупый... если бы я знал все эти слова то конечно бы сделал, но отнюдь... потому и прошу объяснить наглядно.Спасибо!

Старый 13.07.2008, 15:07
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 4  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Уважаемый dimer!

Я никоим образом не хотел обидеть Вас. Простите.

Давайте уточним:

Вы хотите выполнить проверку на корректность введенных данных на этапе ввода данных или же после нажатия кнопки "Отправить". В первом случае, необходимо написать код проверки корректности данных в обработчике onChanged:

Код:
this.createTextField("myInputText_txt", 99, 10, 10, 300, 20);
myInputText_txt.border = true;
myInputText_txt.type = "input";

myInputText_txt.onChanged = function(textfield_txt:TextField) 
{
//здесь проверяем textfield_txt на корректность. Критерии проверки незнаю !!!
};
Во втором случае, Вам необходимо написать код проверки на корректность в функции F_sendMail.

Не привожу готовый код, поскольку незнаю критерии проверки.

Ну для e-mail, я предполагаю критерием проверки будет служить наличие в e-mail'е амперсанда (@). А для полей name_txt и message_txt увы я не знаю критериев. Кстати, в поле для e-mail у Вас по умолчанию будет выведено "Введите Ваш телефон". Это так и должно быть?
__________________
Случайность, господа, это знаете ли непознанная необходимость.


Последний раз редактировалось Alex_beginner; 13.07.2008 в 15:14.
Старый 13.07.2008, 15:13
dimer вне форума Посмотреть профиль Отправить личное сообщение для dimer Найти все сообщения от dimer
  № 5  
Ответить с цитированием
dimer

Регистрация: Feb 2006
Сообщений: 31
проверить введены ли данные, дело в том что там не просто пустая строка в строке уже изначчально есть текст например "введите ваше имя", нужно просто проверить что введен текст отличный от этого и желательно, если конечно не трудно сказать проигрывателю после нажатия на кнопку отправить, если все нормально play.

Спасибо.

Старый 13.07.2008, 15:37
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 6  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Дело тут в том, что при передачи фокуса любому полю в Вашем коде это поле очищается и на момент события onChanged (возникает когда Вы изменяете значение в поле хотя бы на один символ) оно уже очищенно и имеет какое-то значение длинной в 1 символ.

Давайте всетаки уточним, что значит проверить данные, т.е. что в данных проверять - длину введеных данных, характер введеных данных (на английском, русском, китайском языке). Для каждого текстового поля необходимо выбрать свои критерии проверки.

Далее порядок будет таким:
1. Создаете обработчик события onChanged для каждого текстовго поля, используя приведенный выше пример;
2. В каждом обработчике пишите код, проверяющий введенные данные на соответствие определнному критерию, характерному только для данного конкретного поля;
3. Далее записываете в ячейку массива, указывающую на соотвествующее текстовое поле значения "значение поля корректно", "значение поля не корректно", "значение поля еще не проверялось" (или другие удобные, но аналогичные этим значения) по результатам проверки. Необходимо отметить, что все ячейки глобального массива в начале алгоритма должны содержать значение "значение поля еще не проверялось".
4. В функции F_sendMail пишите проверку наличия в каждой ячейке массива значение "значение поля корректно " делая так

Код:
for (var i:Number = 1; i<=количество_txt_полей;i++)
{
    if (globalArr[i]=="значение поля корректно")
         {
             Flag&=true;
         }else
         {
             Flag&=false;
         }
}
   if (Flag)
         {
                //код, выполняющийся при заполненности всех полей корректными данными
         }
Глобальная переменная Flag в начале алгоритма должна иметь значение true.
__________________
Случайность, господа, это знаете ли непознанная необходимость.

Старый 13.07.2008, 15:45
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Alex_beginner, слишком много лишнего в кода, зачем продолжать проверку, когда хоть одно поле не проходит проверку?
Должно быть так
Код:
var flag:Boolean = true;
for (var i:Number = 0; i < количество_txt_полей; i++) {
	if (globalArr[i] != "значение поля корректно") {
		flag = false;
		break;
	}
}
if (flag) {
	//код, выполняющийся при заполненности всех полей корректными данными
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 13.07.2008, 15:46
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 8  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Согласен.
__________________
Случайность, господа, это знаете ли непознанная необходимость.

Старый 13.07.2008, 16:13
dimer вне форума Посмотреть профиль Отправить личное сообщение для dimer Найти все сообщения от dimer
  № 9  
Ответить с цитированием
dimer

Регистрация: Feb 2006
Сообщений: 31
к сожалению ничего не понял, но спасибо за разъяснения...

Старый 13.07.2008, 17:55
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 10  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Может тогда будет проще если Вы нам сообщите критерии проверки каждого поля, а мы в свою очередь попытаемся написать готовый код, если, конечно, такое предложение приемлемо.
__________________
Случайность, господа, это знаете ли непознанная необходимость.

Создать новую тему Ответ Часовой пояс GMT +4, время: 08:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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