Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   проблема с or или || (http://www.flasher.ru/forum/showthread.php?t=50790)

rojok-online 31.10.2003 18:59

проблема с or или ||
 
enter_2.onRelease = function() {
if (id.text == null || id.text == "") {
error.html = true;
error.htmlText = "<b>Не введено имя!</b>";
timer();
} else if (pass.text == null || pass.text == "") {
error.htmlText = "<b>Не введен пароль!</b>";
timer();
}
};
как мне сделать так чтоб скрипт просматривал сразу 2 поля pass и id?

Techmaker 31.10.2003 19:22

enter_2.onRelease = function() {
if (pass.text == null || pass.text == "") {
error.htmlText = "<b>Не введен пароль!</b>";
timer();
}
if (id.text == null || id.text == "") {
error.html = true;
error.htmlText = "<b>Не введено имя!</b>";
timer();
}
};
так нормально? :)

rojok-online 31.10.2003 19:25

Techmaker
Приколист ? :D
мне нужно что-то типо такого:
if (id.text == null || id.text == "" || pass.text == null || pass.text == ""){
error.html = true;
error.htmlText = "<b>заполни хоть что нить!</b>";
timer();
}

mishinaelle 31.10.2003 19:31

а что тебе мешает именно так написать?
:D

rojok-online 01.11.2003 01:52

mishinaelle
мешает то что не работает! :mad:

Techmaker 01.11.2003 09:20

Цитата:

Оригинал написал(а) rojok-online
Приколист ? :D
я приколист?... , может и да, но сначало научись правильно формулировать вопросы :)
Цитата:

Оригинал написал(а) rojok-online
мешает то что не работает!
интерестно, и что же у тебя там не работает? :)

rojok-online 01.11.2003 23:14

Techmaker :mad:
Скрипт у мя так начинается:
1*enter_2.onRelease = function() {
if (id.text == null || id.text == "") {
error.html = true;
error.htmlText = "<b>Не введено имя!</b>";
timer();
} else if (pass.text == null || pass.text == "") {
error.htmlText = "<b>Не введен пароль!</b>";
timer();
}
};
2*if (id.text == null || id.text == "" || pass.text == null || pass.text == ""){
error.html = true;
error.htmlText = "<b>заполни хоть что нить!</b>";
timer();
}
1* срабатывает если заполнено id пишет одно, а если pass то другое.
2* если не заполнено ни одно поле, то он вызывает одну функцию из 1*(либо id либо pass).
Techmaker теперь понятно в чем дело ?

Techmaker 01.11.2003 23:26

:) вот это другое дело, вот тебе самый праильный по логике вариант:
Код:

enter_2.onRelease = function() {
if (pass.text == undefined) {
error.html = true;
error.htmlText = "<b>Не введен пароль!</b>";
timer();
}
if (id.text == undefined) {
error.html = true;
error.htmlText = "<b>Не введено имя!</b>";
timer();
}
if (id.text == undefined && pass.text == undefined){
error.html = true;
error.htmlText = "<b>заполни хоть что нить!</b>";
timer();
}
};

ты немного перепутал, здесь нужен не "or"( || ), а "and"( && ). :) ;)

iLoveYou 01.11.2003 23:35

Цитата:

Оригинал написал(а) Techmaker
if (pass.text == undefined) {

я б с ундефайндами не баловался :)
if (pass.text.length) -- может быть, так лучше?

Techmaker 01.11.2003 23:39

Цитата:

Оригинал написал(а) Sergey"iLoveYou"

я б с ундефайндами не баловался :)

это почему же? :)

rojok-online 01.11.2003 23:51

Techmaker
ща посмотрим... :)

Techmaker 01.11.2003 23:54

Цитата:

Оригинал написал(а) Sergey"iLoveYou"
я б с ундефайндами не баловался :)
я всегда баловался :)

rojok-online 02.11.2003 00:07

нет товарищи не работает :(
enter_2.onRelease = function() {
if (pass.text.length) {// так тоже if (pass.text == undefined)
error.html = true;
error.htmlText = "<b>Не введен пароль!</b>";
timer();
}
if (id.text.length) {// так тоже if (id.text == undefined)
error.html = true;
error.htmlText = "<b>Не введено имя!</b>";
timer();
}
if (id.text.length && pass.text.length) {// и так тоже if (id.text == undefined && pass.text == undefined){
error.html = true;
error.htmlText = "<b>заполни хоть что нить!</b>";
timer();
} else {
chek();
}
};
function chek() {
pass = new LoadVars();
pass.sendAndLoad("http://localhost/site/php/account.php?id="+id.text+"&password="+pass.text+"", pass);
pass.onLoad = function() {
if (pass.result == "access") {
getURL(ps.text, _blank);
} else if (pass.result == "denied") {
error.html = true;
error.htmlText = "<b>Неправельно введено имя или пароль!</b>";
}
};
}

не работает ни как :( Сразу идет переход к функции chek();

iLoveYou 02.11.2003 00:13

Цитата:

Оригинал написал(а) Techmaker

я всегда баловался :)

исходничек бы.

iLoveYou 02.11.2003 00:16

if(!pass.text.length)

Techmaker 02.11.2003 00:20

кто виноват? :)
Цитата:

enter_2.onRelease = function() {
if (pass.text==undefined){
error.html = true;
error.htmlText = "<b>Не введен пароль!</b>";
timer();
}
if (id.text==undefined) {
error.html = true;
error.htmlText = "<b>Не введено имя!</b>";
timer();
}
if (id.text==undefined && pass.text==undefined) {
error.html = true;
error.htmlText = "<b>заполни хоть что нить!</b>";
timer();
}
if (id.text!=undefined && pass.text!=undefined) {
chek();
}
};
function chek() {
pass = new LoadVars();
pass.sendAndLoad("http://localhost/site/php/account.php?id="+id.text+"&password="+pass.text+"", pass);
pass.onLoad = function() {
if (pass.result == "access") {
getURL(ps.text, _blank);
} else if (pass.result == "denied") {
error.html = true;
error.htmlText = "<b>Неправельно введено имя или пароль!</b>";
}
};
}
попробуй :)

Techmaker 02.11.2003 00:23

Цитата:

Оригинал написал(а) Sergey"iLoveYou"

исходничек бы.

фигушки :)

rojok-online 02.11.2003 00:32

Вложений: 1
могу только скрип :(((

iLoveYou 02.11.2003 00:43

_root.my_btn.onRelease = function() {
if (!_root.my_txt.text.length) {
trace("данные не введены");
}
};
my_btn -- кнопка
my_txt -- текстовое поле.
перенести принцип сможешь?

rojok-online 02.11.2003 00:44

Sergey"iLoveYou"
да мне нужно двух поле id и pass. Чтоб если не заролненны поля id и pass выдавало "поля id и pass не заполненны".

iLoveYou 02.11.2003 00:45

Цитата:

Оригинал написал(а) Techmaker

фигушки :)

а иголочку под ноготочек?

iLoveYou 02.11.2003 01:10

Код:

_root.my_btn.onRelease = function() {
        if (!_root.pass.text.length && !_root.id.text.length) {
                trace("enter id & pass ");
        } else if (!_root.pass.text.length) {
                trace("enter pass");
        } else if (!_root.id.text.length) {
                trace("enter id");
        }
};


iLoveYou 02.11.2003 01:13

либо для всех случаев
 
Код:

_root.my_btn.onRelease = function() {
        if (!(_root.pass.text.length && _root.id.text.length)) {
                trace("enter required data ");
        }
};


Techmaker 02.11.2003 01:25

Цитата:

Оригинал написал(а) Sergey"iLoveYou"

а иголочку под ноготочек?

ладна так и быть попытаюсь сделать :D

Techmaker 02.11.2003 01:40

ух ты и в правду так не робит, я тогда писал:
Цитата:

Оригинал написал(а) Techmaker
Код:

if(!txt.text){/*...*/}


rojok-online 02.11.2003 01:48

_root.my_btn.onRelease = function() {
if (!(_root.pass.text.length && _root.id.text.length)) {
trace("enter required data ");
}
};
не работет :((
enter_2.onRelease = function() {
if (!id.text.length) {
error.html = true;
error.htmlText = "<b>Не введено имя!</b>";
time = getTimer();
timer();
} else if (!pass.text.length) {
error.htmlText = "<b>Не введен пароль!</b>";
time = getTimer();
timer();
}else if(!(id.text.length && pass.text.length)){
error.htmlText = "<b>Не заполнено ни одно поле!</b>";
time = getTimer();
timer();
}
}

Techmaker 02.11.2003 01:56

enter_2.onRelease = function() {
if (!id.text.length) {
error.html = true;
error.htmlText = "<b>Не введено имя!</b>";
time = getTimer();
timer();
} else if (!pass.text.length) {
error.htmlText = "<b>Не введен пароль!</b>";
time = getTimer();
timer();
}else if(!id.text.length && !pass.text.length){
error.htmlText = "<b>Не заполнено ни одно поле!</b>";
time = getTimer();
timer();
}
}

iLoveYou 02.11.2003 01:58

Вложений: 1
Цитата:

Оригинал написал(а) rojok-online
_root.my_btn.onRelease = function() {
if (!(_root.pass.text.length && _root.id.text.length)) {
trace("enter required data ");
}
};
не работет :((

:rolleyes:

rojok-online 02.11.2003 02:20

Sergey"iLoveYou"
Techmaker
постучтесь в асю плиз 141486911
потому что не работает меня..., я не знаю что у меня такое :(
либо дайте маил я пришлю прям щас.

Techmaker 02.11.2003 15:11

2rojok-online
чё опять неработает? :)
ладна я уже стукнулся... жду ответа

старина смерть 02.11.2003 16:14

Цитата:

Оригинал написал(а) Sergey"iLoveYou"

я б с ундефайндами не баловался :)
if (pass.text.length) -- может быть, так лучше?

а так тем более. Length в if использовать не рекомендуется.

iLoveYou 02.11.2003 17:03

Цитата:

Оригинал написал(а) старина смерть

а так тем более. Length в if использовать не рекомендуется.

1.исходничек бы по теме "некорректное поведение length при использовании в конструкции if(...){...}"
2. исходничек бы по теме "использование ундефайндов при проверке адектватности данных, введенных пользователем"

старина смерть 02.11.2003 17:10

не некорректное, а нерекомендуется :) хотя... скорее к примеру если так
for (var i=0; i<=10; i++){
if (mmm.length()==0){
трали вали
}
}

такая чепуха.

Лучше сделать так

aaa = mmm.length();
for (var i=0; i<=10; i++){
if (aaa==0){
трали вали
}
}

может я опять пргнал? Спать хочу вот и гоню ботву всякую...

iLoveYou 02.11.2003 17:34

Цитата:

Оригинал написал(а) старина смерть
не некорректное, а нерекомендуется :) хотя... скорее к примеру если так
for (var i=0; i<=10; i++){
if (mmm.length()==0){
трали вали
}
}
такая чепуха.
Лучше сделать так
aaa = mmm.length();
for (var i=0; i<=10; i++){
if (aaa==0){
трали вали
}
}
может я опять пргнал? Спать хочу вот и гоню ботву всякую...

зачем 10 раз проверять на равенство нулю mmm.length? ;)
идею твою я понял, хотя ты и кривой пример привел. разумеется, для многократного использования значения длины строки или массива (например, для сравнения с другой величиной) лучше поместить ее в переменную, дабы каждый раз, допустим, не вызывать метод или функцию для получения этого значения, и потом работать с этой переменной.
но, тем не менее, ответа на поставленный вопрос ты не дал. еще мысли есть?

rojok-online 02.11.2003 19:32

Sergey"iLoveYou"
hi :)
Смотри в твоем исходнике написано это...

_root.my_btn.onRelease = function() {
if (!(_root.pass.text.length && _root.id.text.length)) {
trace("enter required data ");
}
};

Так то оно работает..., но если сделать так:
_root.my_btn.onRelease = function() {
if(!id.text.length){
trace("id ");
}else if (!pass.text.length){
trace("pass");
}else if (!(_root.pass.text.length && _root.id.text.length)) {
trace("enter required data ");
}
};
то так не фурычит, выдает либо id либо pass , а вот надо чтоб выдовало enter required data если не заполнены поля.

iLoveYou 02.11.2003 19:55

разберись с булевой алгеброй :)
Код:

_root.my_btn.onRelease = function() {
        if (!_root.pass.text.length && !_root.id.text.length) {
                _root.error.htmlText = "<b>enter id & pass</b>";
        } else if (!_root.pass.text.length) {
                _root.error.htmlText = "<b>enter pass</b>";
        } else if (!_root.id.text.length) {
                _root.error.htmlText = "<b>enter id</b>";
        } else if (_root.pass.text.length && _root.id.text.length) {
                _root.error.htmlText = "<b>...sending...</b>";
}
}


rojok-online 02.11.2003 20:05

благодарен тебе Sergey"iLoveYou". Сенькс большой :))
Я понял теперь почему не работало :))


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

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