Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глюк javascript? Похоже что ява глючит 
V
    Опции темы
s0lman
Дата 18.11.2007, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: нет
Всего: 29



Доброго времени суток!
Проблема в следующем. У меня есть код ява-скрипта на проверку корректности введенных данных:

if ((vznos<cena*per/100)||(vznos>=cena)) avs=false;
            else avs=true;
где vznos - сумма авансового взноса
cena - стоимость авто
per - процент от стоимости авто, определяющий минимальный авансовый взнос(равен 30%)

теперь по сути
при значении cena до 99 999 включительно (и, соответственно vznos от 30 000) все работает правильно, но как только cena принимает значение 100 000 (vznos, к примеру, 35 000), то на проверке (vznos>=cena) флагу присваивается значение  false. 

Для проверки пишу код 
if(vznos>=cena)alert(vznos+">="+cena);
Получаю в сообщении: 35000>=100000

Причем, если этот фрагмент кода выписываю в отдельный хтмл-файл, то все работает правильно.

Подскажите, можно ли с ним как-то бороться? 


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
Castro
Дата 19.11.2007, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 31.8.2007
Где: Украина

Репутация: нет
Всего: 5



Не понимаю что у Вас там не так
Код

function d()
{
var vznos=35000;
var cena=99999;
var per=30;
var avs;
if ((vznos<((cena*per)/100))||(vznos>=cena)) 
{
avs=false;
}
else avs=true;
alert(avs);
}

у меня всё прекрасно считает


--------------------
user posted image
PM MAIL ICQ GTalk   Вверх
s0lman
Дата 19.11.2007, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: нет
Всего: 29



Цитата(Castro @ 19.11.2007,  00:12)
у меня всё прекрасно считает

1. var cena=100000;
2. У меня тоже - в отдельном файле все отлично работает, а на исходной странице - не хочет smile  


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
Castro
Дата 19.11.2007, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 31.8.2007
Где: Украина

Репутация: нет
Всего: 5



Пробовал и 100k - работает. Ну не знаю-пройдитесь отладчиком по скрипту, а то бред какой-то у Вас получается


--------------------
user posted image
PM MAIL ICQ GTalk   Вверх
s0lman
Дата 19.11.2007, 03:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: нет
Всего: 29



Я не перестаю удивляться

есть строка
vznos=chooser.form.elements["vznos_new"].value;

если alert(chooser.form.elements["vznos_new"].value) получаю 35000.
Если же alert(vznos) - пустое сообщение.


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
s0lman
Дата 19.11.2007, 04:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: нет
Всего: 29



заметил одну закономерность.
у меня функция вызывается два раза:
1. на onfocus поля ввода vznos
2. на onclick кнопки проведения расчетов
В первый раз, естественно,флаг возвращает ложное значение, т. к. vznos=="". Во второй он значение НЕ МЕНЯЕТ. Т. е. когда непосредственно перед проверкой принудительно прописываю
vznos=35000; cena=100000; per=30;
то оба раза флаг получает значение  true. 
Странно, все параметры передаются правильно - проверял....    



--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
Castro
Дата 19.11.2007, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 31.8.2007
Где: Украина

Репутация: нет
Всего: 5



Хм...Проверяйте тогда промежуточные значения - мож реально там 1000k получается


--------------------
user posted image
PM MAIL ICQ GTalk   Вверх
s0lman
Дата 19.11.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: нет
Всего: 29



Ситуация такова, что в первом поле указываю ст-ть автомобиля, а на onfocus поля "взнос" вызываю функцию.  Что здесь получаю false не удивительно, т. к. поле ввода еще не заполнено.
Но потом нажимаю на onclick кнопки "расчет" вызывается та же функция, но возникает чувство, что функция не выполняется, хотя это точно не так, и в упор выдает 30000>100000.

Один момент.
Если непосредственно перед проверкой задаю значение 
vznos=30000;
то проверяет правильно,а если передаю параметром (значение то же) - 30000>100000. И именно начиная со 100 000(99 999 работает правильно).


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
solenko
Дата 19.11.2007, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 9
Всего: 67



parseInt не пробовали? А то лично у меня такое впечатление, что вы не числа а строки сравниваете.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
s0lman
Дата 19.11.2007, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: нет
Всего: 29



Цитата(solenko @ 19.11.2007,  14:48)
parseInt не пробовали? А то лично у меня такое впечатление, что вы не числа а строки сравниваете.

Действительно :-[   Все работает  smile 
Не скажете, в таком случае, почему до 100тыс строками все отлично работает?


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
solenko
Дата 19.11.2007, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 9
Всего: 67



наверное потому что попадали на строки, скажем, 55 < 999
вы попробуйте 9 < 10 и получите тот же результат что и поле 100тыс


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.