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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибки в скрипте, (просьба найти) 
V
    Опции темы
BuShaRt
Дата 18.11.2006, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Модератор: Название темы должно отражать ее суть!
(Нормальные книги есть на http://js2.ru/files/index.shtml --12345с)

Вот недавно начала учить JS - достало выполнять некоторые вещи на чистом PHP... Ну вот решил написать совсем простенький скриптик, но и в нем есть ошибки. Нормальной книги по JS нету, а в google.ru не чего не нашел, вот надеюсь тут поможите.

Проблема: 
1. Если вбивать число не с точкой, а с запятой, то не чего не считает.
2. Если во второ поле ввести 3 на пример то получается  "Железная руда: 3 кг - 19.799999999999997 нв" Хотя такого числа быт не должно по идее.


Код

function showres(){
var rez, rez1, rez2, rez3, rez4, rez5;
rez=0;
    document.all.rez.innerHTML = '';
    if (document.cal.r1.value != "") {
        rez1 = document.cal.r1.value*9;
        rez += rez1;
        document.all.rez.innerHTML +=  "<table><tr><td>Медная руда:   "+document.cal.r1.value+' кг - '+rez1+" нв</td></tr></table>";
    }
    
    if (document.cal.r2.value != "") {
        rez2 = document.cal.r2.value*6.6;
        rez += rez2;
        document.all.rez.innerHTML +=  "<table><tr><td>Железная руда:   "+document.cal.r2.value+' кг - '+rez2+" нв</td></tr></table>";
    }
    
    if (document.cal.r3.value != "") {
        rez3 = document.cal.r3.value*173;
        rez += rez3;
        document.all.rez.innerHTML +=  "<table><tr><td>Золото:   "+document.cal.r3.value+' кг - '+rez3+" нв</td></tr></table>";
    }
    
    if (document.cal.r4.value != "") {
        rez4 = document.cal.r4.value*86;
        rez += rez4;
        document.all.rez.innerHTML +=  "<table><tr><td>Серебро:   "+document.cal.r4.value+' кг - '+rez4+" нв</td></tr></table>";
    }
    
    if (document.cal.r5.value != "") {
        rez5 = document.cal.r5.value*242;
        rez += rez5;
        document.all.rez.innerHTML +=  "<table><tr><td>Мифрил:   "+document.cal.r5.value+' кг - '+rez5+" нв</td></tr></table>";
    }
    document.all.rez.innerHTML +=  "<table><tr><td>Итого: "+rez+" NV</td></tr></table>";
}


Код

<form name="cal">
<table border="0">
    <tr>
        <td>Медная руда:</td>
        <td><input type="text" name="r1" size="10" maxlength="6"> кг.</td>
    </tr>
    <tr>
        <td>Железная руда:</td>
        <td><input type="text" name="r2" size="10" maxlength="6"> кг.</td>
    </tr>
    <tr>
        <td>Золото:</td>
        <td><input type="text" name="r3" size="10" maxlength="6"> кг.</td>
    </tr>
    <tr>
        <td>Серебро:</td>
        <td><input type="text" name="r4" size="10" maxlength="6"> кг.</td>
    </tr>
    <tr>
        <td>Мифрил:</td>
        <td><input type="text" name="r5" size="10" maxlength="6"> кг.</td>
    </tr>
</table>
<input type="button" value="Подсчет" onClick="showres();">
</form>

<div id="rez"></div>


Это сообщение отредактировал(а) 12345c - 3.3.2008, 13:22
PM MAIL   Вверх
BuShaRt
Дата 18.11.2006, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Я не знал, как суть проблемы корото высказать...
PM MAIL   Вверх
BuShaRt
Дата 19.11.2006, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Ну, не кто не поможет? smile(
PM MAIL   Вверх
vasac
Дата 19.11.2006, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 13
Всего: 36



BuShaRt, ну ведь послали тебя в книги.

Цитата(BuShaRt @  18.11.2006,  17:55 Найти цитируемый пост)
1. Если вбивать число не с точкой, а с запятой, то не чего не считает.

А чего ты хочешь? В js запятые в качестве разделителей целой и дробной части не ест.
Если нужно, чтобы пользователь мог вводить, как через точку, так и через запятую — обрабатывай сначала введенные им данные (заменяй "," на ".").

Цитата(BuShaRt @  18.11.2006,  17:55 Найти цитируемый пост)
Если во второ поле ввести 3 на пример то получается  "Железная руда: 3 кг - 19.799999999999997 нв" Хотя такого числа быт не должно по идее.

Почитай где-нибудь про хранение чисел в компьютере. Заодно поймешь, как решить данную проблему.
PM WWW   Вверх
BuShaRt
Дата 19.11.2006, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



 smile Не отказался бы все же от примеров конкретных исправления ошибок..
PM MAIL   Вверх
12345c
Дата 20.11.2006, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Исправить запятую на точку проще по .replace(/,/,"."). Округлить до целого - ну сами подумайте, это же не детский сад. Функция, например, Math.floor(). Для этого 8 классов достаточно.
PM WWW   Вверх
BuShaRt
Дата 20.11.2006, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



12345c, 

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


 




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


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

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