Просмотр полной версии : Проверка текстового поля на "ничего не введение"!
Народ помогите, вот есть текстовое поле Input (var name) и рядом кнопка, по нажатию на которую запоминается введенное в поле name в какую-то переменную _root.username и делается переход на следующий кадр данного мувика movie:
on (press) {
_root.username=name;
_root.movie.gotoAndStop (2);
}
а если ничего не введено, то нужно переходить на третий кадр movie, а как проверить введено ли что-нибудь? :D
переменная текстового поля без текста равна ""
имя поля _root.field
если _root.field=="" то ничего невведено.
...так не пашет! Я пробовал это уже давно! Другие варианты есть?
on (release) {
if (_root.textfield == "name") {
_root.gotoAndStop(2);
} else if (_root.textfield == "") {
gotoAndStop(3);
}else{
_root. stop()
}
}
Nox Noctis
02.01.2003, 18:50
люди, вы чего, на днях настолько перепили ?.. =)))
нужно всего-то проверить что длина строки в поле больше нуля =)
то есть достаточно написать:
if (_root.username.length) {
// зашибись !
} else {
// не катит !
}
2Usnul
"потому что" пишется "because"
а если ты хочешь сказать "вы ничего не написали",
то правильно будет: "you didn't write anything"
:))))
охренеть!
я понял, что ты тут самый умный, да я нехрена незнаю английский, но в английской винде, я немогу писать по русски!
в школе я учил фашистский, а теперь живя в Англии приходится "трахаться" с английским, так что не доставай меня .. а ели хотел что-то умное двинуть, то либо молча, либо первым споватился бы!
Нокс, а что if (_root.username == "") {... намного длиннее, чем if (_root.username.length) {...? Я конечно много выпил, но...:)) Или не понял чего то.
Usnul, ты чего так нервничаешь?
Nox Noctis
02.01.2003, 19:27
2Usnul
таааак.... ну не надо на меня наезжать только, ладно ? =)
я ж по-хорошему шутил =) смайлики видишь ?
объясняю: твой пример НЕ РАБОТАЕТ :))
потому что если сначала ввести имя, а потом его стереть, текстовая переменная уже НЕ БУДЕТ РАВНА undefined :)
поэтому правильный ответ см. в моем посте... =)
и не нервничай так =)
2derhab
хех... да дело в том, что если поставить пустое поле, то его переменная сначала будет равна "андефайнед", а потом, если написать и стереть, то ""...
поэтому надо проверять оба значения: и пустую строку и андефайнед... но зачем так сложно, если можно просто проверить длину строки ? =)
хм...а мой пример работает после стирания:)
Такую дискуссию жестокую завели, ухх :eek:
но прав оказался всё таки Nox Noctis.
Сейчас сижу и думаю, как я сразу не допер, что проще длинну проверять, чем всякие там андефайнеды, про которые впервые слышу
Нокс, а ты не шути, а то у меня и так мозги в горшочек,я рисовалку на флэше делаю, а сам ну блин ниче не понимаю!
ЗЫ
извинения приняты:)
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
да не в поле а в коде просто переменной поля присвае\иваешь ""
а через длинну поля не работает нормально потому как если она не тронутая и не присвоено значение"" то не работает
вообщем останемся каждый при своем мнении))))))
но поспорить очень охота
на улице дрянь в голове тоже
Как не работает, если не тронутая?? :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)); и посмотри что получится =)
проверка длины лучше - потому что это всего одно действие, и ни о чем другом не надо заботиться...
...даже не надо "обнулять" строку вначале...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.