PDA

Просмотр полной версии : проблема с or или ||


rojok-online
31.10.2003, 18:59
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
могу только скрип :(((

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
Оригинал написал(а) 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". Сенькс большой :))
Я понял теперь почему не работало :))