| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Глюк javascript? |
| Автор: s0lman 18.11.2007, 23:04 |
| Доброго времени суток! Проблема в следующем. У меня есть код ява-скрипта на проверку корректности введенных данных: 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 Причем, если этот фрагмент кода выписываю в отдельный хтмл-файл, то все работает правильно. Подскажите, можно ли с ним как-то бороться? |
| Автор: Castro 19.11.2007, 00:12 | ||
Не понимаю что у Вас там не так
у меня всё прекрасно считает |
| Автор: s0lman 19.11.2007, 01:07 | ||
1. var cena=100000; 2. У меня тоже - в отдельном файле все отлично работает, а на исходной странице - не хочет |
| Автор: Castro 19.11.2007, 01:59 |
| Пробовал и 100k - работает. Ну не знаю-пройдитесь отладчиком по скрипту, а то бред какой-то у Вас получается |
| Автор: s0lman 19.11.2007, 03:56 |
| Я не перестаю удивляться есть строка vznos=chooser.form.elements["vznos_new"].value; если alert(chooser.form.elements["vznos_new"].value) получаю 35000. Если же alert(vznos) - пустое сообщение. |
| Автор: s0lman 19.11.2007, 04:16 |
| заметил одну закономерность. у меня функция вызывается два раза: 1. на onfocus поля ввода vznos 2. на onclick кнопки проведения расчетов В первый раз, естественно,флаг возвращает ложное значение, т. к. vznos=="". Во второй он значение НЕ МЕНЯЕТ. Т. е. когда непосредственно перед проверкой принудительно прописываю vznos=35000; cena=100000; per=30; то оба раза флаг получает значение true. Странно, все параметры передаются правильно - проверял.... |
| Автор: Castro 19.11.2007, 12:38 |
| Хм...Проверяйте тогда промежуточные значения - мож реально там 1000k получается |
| Автор: s0lman 19.11.2007, 14:27 |
| Ситуация такова, что в первом поле указываю ст-ть автомобиля, а на onfocus поля "взнос" вызываю функцию. Что здесь получаю false не удивительно, т. к. поле ввода еще не заполнено. Но потом нажимаю на onclick кнопки "расчет" вызывается та же функция, но возникает чувство, что функция не выполняется, хотя это точно не так, и в упор выдает 30000>100000. Один момент. Если непосредственно перед проверкой задаю значение vznos=30000; то проверяет правильно,а если передаю параметром (значение то же) - 30000>100000. И именно начиная со 100 000(99 999 работает правильно). |
| Автор: solenko 19.11.2007, 14:48 |
| parseInt не пробовали? А то лично у меня такое впечатление, что вы не числа а строки сравниваете. |
| Автор: s0lman 19.11.2007, 15:40 | ||
Действительно :-[ Все работает Не скажете, в таком случае, почему до 100тыс строками все отлично работает? |
| Автор: solenko 19.11.2007, 15:49 |
| наверное потому что попадали на строки, скажем, 55 < 999 вы попробуйте 9 < 10 и получите тот же результат что и поле 100тыс |