Форум 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=41445)

navidim 02.01.2003 17:07

Проверка текстового поля на "ничего не введение"!
 
Народ помогите, вот есть текстовое поле Input (var name) и рядом кнопка, по нажатию на которую запоминается введенное в поле name в какую-то переменную _root.username и делается переход на следующий кадр данного мувика movie:
on (press) {
_root.username=name;
_root.movie.gotoAndStop (2);
}
а если ничего не введено, то нужно переходить на третий кадр movie, а как проверить введено ли что-нибудь? :D

Usnul 02.01.2003 17:39

переменная текстового поля без текста равна ""
имя поля _root.field
если _root.field=="" то ничего невведено.

navidim 02.01.2003 18:11

к сожалению...
 
...так не пашет! Я пробовал это уже давно! Другие варианты есть?

Usnul 02.01.2003 18:17

секунду щас сделаю!

derhab 02.01.2003 18:21

on (release) {
if (_root.textfield == "name") {
_root.gotoAndStop(2);
} else if (_root.textfield == "") {
gotoAndStop(3);
}else{
_root. stop()
}
}

Usnul 02.01.2003 18:29

Вложений: 1
без слов...

Nox Noctis 02.01.2003 18:50

люди, вы чего, на днях настолько перепили ?.. =)))

нужно всего-то проверить что длина строки в поле больше нуля =)

то есть достаточно написать:

if (_root.username.length) {
// зашибись !
} else {
// не катит !
}

2Usnul
"потому что" пишется "because"
а если ты хочешь сказать "вы ничего не написали",
то правильно будет: "you didn't write anything"
:))))

Usnul 02.01.2003 18:58

охренеть!
я понял, что ты тут самый умный, да я нехрена незнаю английский, но в английской винде, я немогу писать по русски!
в школе я учил фашистский, а теперь живя в Англии приходится "трахаться" с английским, так что не доставай меня .. а ели хотел что-то умное двинуть, то либо молча, либо первым споватился бы!

derhab 02.01.2003 19:26

Нокс, а что if (_root.username == "") {... намного длиннее, чем if (_root.username.length) {...? Я конечно много выпил, но...:)) Или не понял чего то.

Usnul, ты чего так нервничаешь?

Nox Noctis 02.01.2003 19:27

2Usnul
таааак.... ну не надо на меня наезжать только, ладно ? =)
я ж по-хорошему шутил =) смайлики видишь ?


объясняю: твой пример НЕ РАБОТАЕТ :))
потому что если сначала ввести имя, а потом его стереть, текстовая переменная уже НЕ БУДЕТ РАВНА undefined :)

поэтому правильный ответ см. в моем посте... =)

и не нервничай так =)

2derhab
хех... да дело в том, что если поставить пустое поле, то его переменная сначала будет равна "андефайнед", а потом, если написать и стереть, то ""...

поэтому надо проверять оба значения: и пустую строку и андефайнед... но зачем так сложно, если можно просто проверить длину строки ? =)

derhab 02.01.2003 19:29

хм...а мой пример работает после стирания:)

navidim 02.01.2003 21:23

Спасибо!
 
Такую дискуссию жестокую завели, ухх :eek:
но прав оказался всё таки Nox Noctis.
Сейчас сижу и думаю, как я сразу не допер, что проще длинну проверять, чем всякие там андефайнеды, про которые впервые слышу

Usnul 02.01.2003 21:36

Нокс, а ты не шути, а то у меня и так мозги в горшочек,я рисовалку на флэше делаю, а сам ну блин ниче не понимаю!
ЗЫ
извинения приняты:)

Nox Noctis 02.01.2003 21:40

смешной какой =)))
сам на меня наорал, а потом извинения принял =)
шустро так =))

nishporka 03.01.2003 23:39

если еще не нашел как сделать чтоб работало то вот такой код
это в пустом мувике
onClipEvent(load){
var my_text="";
}
onClipEvent(enterFrame){
if (_parent(или путь просто к полю).==""){
my_text="zapolni pole";
}
}

Nox Noctis 04.01.2003 00:21

nishporka, читай внимательнее :)
чуть выше говорится почему такой способ сравнения не годится =)

nishporka 04.01.2003 00:27

читал)))
вот именно годится потому что ты изначально полю присваеиваешь значение "" и потом проверяешь и даже после того как написать и удалить оно работает
это если не присваевать этого значения то выкинет адефайнед а так все нормально
я сейчас сам с полями работаю потому говорю 100% это

Nox Noctis 04.01.2003 00:32

а ты можешь объяснить НУ ЗАЧЕМ тебе еще одно лишнее действие, а ? =)
когда все проще... :)

если заранее в поле запихать пустую строку - тогда да =)
но незачем =)

nishporka 04.01.2003 00:37

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

derhab 04.01.2003 00:38

Как не работает, если не тронутая?? :confused: Работает!

nishporka 04.01.2003 00:46

не РАБОТАЕТ если ты тоже неприсвоешь сначало переменной ""
а потому что без присвоения "нехрена" и если юзер не введет ничего просто проигнорирует то твой способ определит длинну поля как 8 ( андефайнед ну или около 8) а значит больше 0
и твой способ сработает только тогда когда он что-то введет и потом сотрет
а если ты будешь присваивать переменной значение "" то мой способ уже короче и проще

nishporka 04.01.2003 00:53

СОРИ)))))))))))
вот что значит настроение спорить
проверил
работает))))))))) :D

Nox Noctis 04.01.2003 00:57

уффф.... а я уже отчаялся что-то объяснять :)))

почему андефайнед около восьми ? =)))) с какой стати ?! =)))
если есть сомнения - проверь так: trace(Number(undefined)); и посмотри что получится =)

проверка длины лучше - потому что это всего одно действие, и ни о чем другом не надо заботиться...
...даже не надо "обнулять" строку вначале...


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

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