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

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

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

Регистрация: Sep 2008
Сообщений: 64
По умолчанию проверка вводимых символов в input text

Делаю небольшой калькулятор для сайта. нарисовались две проблемы
1. как ограничить вводимые символы цифрами(чтоб нельзя было вводить буквы)
2. как заставить флэш понимать запятую, как десятичный разделитель(если ввести 0.5 работает, если 0,5 то не работает)

кто нибудь сталкивался с подобным?

заранее спасибо за ответы

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
На первый вопрос:
только цифры ну и точка )
Код AS1/AS2:
textField_txt.restrict="0-9."

Старый 10.03.2010, 10:26
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 3  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Расшифруйте - что означает "понимать запятую"? Не вводите запятую и все. Отключите ее с помощью restrict.
Если же вы беспокоитесь о пользователях, которые не "догонят", что надо вводить точку как разделитель, и будут усиленно по ней колотить, сделайте при вводе автозамену запятой на точку. Только так обычно не делается. Есть стандартный интерфейс, и все.

Старый 10.03.2010, 12:37
casper_61 вне форума Посмотреть профиль Отправить личное сообщение для casper_61 Найти все сообщения от casper_61
  № 4  
Ответить с цитированием
casper_61

Регистрация: Sep 2008
Сообщений: 64
Цитата:
Если же вы беспокоитесь о пользователях
Для их удобства это и делается
Цитата:
сделайте при вводе автозамену запятой на точку
вот как это сделать, я и не знаю. Про restrict я уже понял.

Старый 10.03.2010, 14:18
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Учитесь пользоваться хелпом.
У текстового поля есть событие onChanged.
Прикрутите к нему эту замену.
Код AS1/AS2:
text_tf.onChanged = function  () {
	this.text = this.text.split(',').join('.');
};
где text_tf - имя вашего поля

Полагаю, что это самое простое решение, если вводится немного текста.

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


Можно так попробовать реализовать полную проверку:
Код AS1/AS2:
text_tf.restrict = '0-9.,';
text_tf.maxChars = 10;
 
text_tf.onChanged = function  () {
 
	if (!dotExists) {
		this.text = this.text.split(',').join('.');
	}
 
	if (this.text.indexOf('.') > 0) {
		this.restrict = '0-9';
		dotExists = true ;
	} 			
	else {
		this.restrict = '0-9.,';
		dotExists = false ;
	}
};


Последний раз редактировалось mooncar; 10.03.2010 в 14:55.
Старый 10.03.2010, 17:18
casper_61 вне форума Посмотреть профиль Отправить личное сообщение для casper_61 Найти все сообщения от casper_61
  № 6  
Ответить с цитированием
casper_61

Регистрация: Sep 2008
Сообщений: 64
mooncar
Спасибо огромное. Все получилось. Кстати за проверку второй точки отдельное спасибо, у меня этот момент как то вылетел из головы.

По ходу назрел еще один вопрос, можно ли программно выделить текст в TextField? как это сделать на AS3 нашел, а есть ли в AS2 аналог
Код AS3:
TextField.setSelection()

Старый 10.03.2010, 18:24
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 7  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Код AS1/AS2:
Selection.setFocus(text_tf); //ставим фокус 
Selection.setSelection(0, 3); //выделяем конкретную подстроку (можно убрать, тогда выделится весь текст)


Последний раз редактировалось mooncar; 10.03.2010 в 18:27.
Старый 21.06.2011, 20:10
Converse вне форума Посмотреть профиль Отправить личное сообщение для Converse Найти все сообщения от Converse
  № 8  
Ответить с цитированием
Converse

Регистрация: May 2011
Сообщений: 12
Ребята, а как ограничить кпримеру неправильный ввод? Если пользователь набрал не 0,5 а ,5?
Или в поле допускается ввод 3 знаков, это цифры и точка, вводимый диапазон от 0 до 1, т.е. допускается 0, 0.1, 0.2.... 1 . Если вводим первую цифру 0, то можно вписать еще 2 знака, если 1, то больше ничего не вписывается.


Последний раз редактировалось Converse; 21.06.2011 в 20:21.
Создать новую тему Ответ Часовой пояс GMT +4, время: 17:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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