Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> считалка на яве - в чем косяки?
achuser  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 42435
На форуме: 1 год, 3 месяца, 26 дней
Карма:




всем привет. не могу заставить работать сей код. подскажите, пожалуйста, где косячу? :)

в общем есть 3 инпута. в одном вбиваем сумму, в другом селекте выбираем категорию товара, и третий чекбокс.
и на яве калькулятор по условиям.
при изменении данных в инпутах должна выполняться функция и выдавать результат.

но как понимаете, фигушки...


<script type="mce-text/javascript">// <![CDATA[
var total=0;
function calc() {
document.write("За день");
if ((document.getElementById("predmet").value==1)&&(document.getElementById("summa").value<20000)) { total= (document.getElementById("summa").value*0.12)/30}
else if ((document.getElementById("predmet").value==1)&&(document.getElementById("summa").value>19999)) { total= (document.getElementById("summa").value*0.1)/30}
else if ((document.getElementById("predmet").value==2)&&(document.getElementById("summa").value>19999)) { total= (document.getElementById("summa").value*0.1)/30}
else if ((document.getElementById("predmet").value==3)&&(document.getElementById("summa").value>19999)) { total= (document.getElementById("summa").value*0.1)/30}
else if ((document.getElementById("predmet").value==4)&&(document.getElementById("summa").value>19999)) { total= (document.getElementById("summa").value*0.1)/30}
else if ((document.getElementById("predmet").value==5)&&(document.getElementById("summa").value>9999)) { total= (document.getElementById("summa").value*0.08)/30}
else if (document.getElementById("predmet").value==6) { total= (document.getElementById("summa").value*0.06)/30}
else if ((document.getElementById("predmet").value==2)&&(document.getElementById("summa").value<20000)&&(document.getElementById("garant").cheked==true)) { total= (document.getElementById("summa").value*0.2)/30}
else if ((document.getElementById("predmet").value==2)&&(document.getElementById("summa").value<20000)&&(document.getElementById("garant").cheked!==true)) { total= (document.getElementById("summa").value*0.25)/30}
else if ((document.getElementById("predmet").value==3)&&(document.getElementById("summa").value<20000)) { total= (document.getElementById("summa").value*0.25)/30}
else if ((document.getElementById("predmet").value==4)&&(document.getElementById("summa").value<20000)&&(document.getElementById("garant").cheked==true)) { total= (document.getElementById("summa").value*0.15)/30}
else if ((document.getElementById("predmet").value==4)&&(document.getElementById("summa").value<20000)&&(document.getElementById("garant").cheked!==true)) { total= (document.getElementById("summa").value*0.2)/30}
else if ((document.getElementById("predmet").value==5)&&(document.getElementById("summa").value<10000)&&(document.getElementById("garant").cheked==true)) { total= (document.getElementById("summa").value*0.15)/30}
document.write("За день "+total);

}
// ]]></script>
<br /> Калькулятор займа <br /> Сумма займа:     <input onchange="calc()" min="0" max="10000000" step="500" value="500" id="summa" type="number" name="summa" style="background-color: #ececec; border-radius: 7px; -moz-border-radius: 7px; -webkit-border-radius: 7px; outline: none;" /> <br /><select onchange="calc()" style="background-color: #ececec; border-radius: 7px; -moz-border-radius: 7px; -webkit-border-radius: 7px; outline: none;" name="predmet" id="predmet">
<
option value="1">Ювелирные украшения</option>
<
option value="2">Инструмент, оборудование</option>
<
option value="3">Бытовая техника</option>
<
option value="4">Цифровая техника, электроника</option>
<
option value="5">Автомобили, спецтехника</option>
<
option value="6">Недвижимость</option>
<
/select><br />На гарантии     <input onchange="calc()" type="checkbox" name="garant" id="garant" style="background-color: #ececec; border-radius: 7px; -moz-border-radius: 7px; -webkit-border-radius: 7px; outline: none;" /> <br />
<
script type="text/javascript">// <![CDATA[
document.write(total);
// ]]></script>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15347
Пользователь №: 4190
На форуме: 9 лет, 3 месяца, 16 дней
Карма: 467




Цитата (achuser @ 26.01.2016 - 13:58)
подскажите, пожалуйста, где косячу? smile.gif

Ошибка первая - ты называешь JavaScript явой. Он обижается на тебя smile.gif

Ошибка вторая - посмотри, когда на самом деле срабатывает событие onchange. Не тогда, когда просто что-то поменялось (как ты надеешься), а немного в другое время. То есть, тебе нужно использовать другое событие.

Третье - не ошибка, но "индусский код".
Все вот эти document.getElementById("predmet").value надо убрать, вынести вверх. В начале назначаешь величины из инпутов в переменные и уже с переменными работаешь. Код будет короче, "красивее" и понятнее.

В четвертых (тоже не ошибка) - стили лучше вынести. Пусть даже внутри этого же файла, где-нибудь отдельным блоком. Но не ин-лайн. "Учись делать правильно, плохо само получится" (с)

PS. И самое главное... С тэгами открытия-закрытия разберись. Я про <scrip> говорю.

Это сообщение отредактировал sergeiss - 26.01.2016 - 15:12


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4284
Пользователь №: 29002
На форуме: 5 лет, 9 месяцев, 22 дня
Карма: 147




sergeiss
подозреваю ты еще больше запутал человека smile.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26362
Пользователь №: 21350
На форуме: 7 лет, 2 месяца, 8 дней
Карма: 736




Цитата
подозреваю ты еще больше запутал человека

ибо нефиг. это тебе не баранку крутить.


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15347
Пользователь №: 4190
На форуме: 9 лет, 3 месяца, 16 дней
Карма: 467




redreem, "ибо нефиг" (с) Игорь Васинский wink.gif


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
achuser  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 42435
На форуме: 1 год, 3 месяца, 26 дней
Карма:




onchange - не единый вариант, например на онклик по чекбоксу реакции так же не будет.

назначить переменные для красы можно, но тут уж как на ходу мысль приходит и тестовый вариант выглядит корявенько...

главная фигня в том, что переменную не выводит, даже со значением присвоенным.

теги там СМС ка приписывает шелуху свою если про это
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
achuser  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 42435
На форуме: 1 год, 3 месяца, 26 дней
Карма:




<script type="mce-text/javascript">
var
total=0;

function calc() {

var predm=document.getElementById("predmet").value;
var sum=document.getElementById("summa").value;
var chkb=document.getElementById("garant").cheked;



document.write("За день");
if ((predm==1)&&(sum<20000)) { total= (sum*0.12)/30}
else if ((predm==1)&&(sum>19999)) { total= (sum*0.1)/30}
else if ((predm==2)&&(sum>19999)) { total= (sum*0.1)/30}
else if ((predm==3)&&(sum>19999)) { total= (sum*0.1)/30}
else if ((predm==4)&&(sum>19999)) { total= (sum*0.1)/30}
else if ((predm==5)&&(sum>9999)) { total= (sum*0.08)/30}
else if (predm==6) { total= (sum*0.06)/30}
else if ((predm==2)&&(sum<20000)&&(chkb==true)) { total= (sum*0.2)/30}
else if ((predm==2)&&(sum<20000)&&(chkb!==true)) { total= (sum*0.25)/30}
else if ((predm==3)&&(sum<20000)) { total= (sum*0.25)/30}
else if ((predm==4)&&(sum<20000)&&(chkb==true)) { total= (sum*0.15)/30}
else if ((predm==4)&&(sum<20000)&&(chkb!==true)) { total= (sum*0.2)/30}
else if ((predm==5)&&(sum<10000)&&(chkb==true)) { total= (sum*0.15)/30}
document.write("За день "+total);

}
</script>
<br />
Калькулятор займа
<br /> Сумма займа:     <input onchange="calc()" min="0" max="10000000" step="500" value="500" id="summa" type="number" name="summa" style="background-color: #ececec; border-radius: 7px; -moz-border-radius: 7px; -webkit-border-radius: 7px; outline: none;" /> <br />
<select
onchange="calc()" style="background-color: #ececec; border-radius: 7px; -moz-border-radius: 7px; -webkit-border-radius: 7px; outline: none;" name="predmet" id="predmet">
<option
value="1">Ювелирные украшения</option>
<option
value="2">Инструмент, оборудование</option>
<option
value="3">Бытовая техника</option>
<option
value="4">Цифровая техника, электроника</option>
<option
value="5">Автомобили, спецтехника</option>
<option
value="6">Недвижимость</option>
</select>
<br />
На гарантии     <input onclick="calc()" type="checkbox" name="garant" id="garant" style="background-color: #ececec; border-radius: 7px; -moz-border-radius: 7px; -webkit-border-radius: 7px; outline: none;" /> <br />
<script
type="text/javascript">
document.write(total);
</script>
</td>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15347
Пользователь №: 4190
На форуме: 9 лет, 3 месяца, 16 дней
Карма: 467




Цитата (achuser @ 26.01.2016 - 15:41)
var chkb=document.getElementById("garant").cheked;

checked !!! Тут ошибка. У тебя это с самого начала было неправильно написано, но в большой массе кода было плохо заметно. Так что "красивый" код - это не только красота, но и удобство.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
achuser  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 42435
На форуме: 1 год, 3 месяца, 26 дней
Карма:




могу предположить, что
var chkb=document.getElementById("garant").value;

else if ((predm==2)&&(sum<20000)&&(chkb.cheked==true))


но главная проблема в том, что document.write выводит только текст, какую переменную пробую подсунуть - все,пусто, даже текст не выдает...
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15347
Пользователь №: 4190
На форуме: 9 лет, 3 месяца, 16 дней
Карма: 467




achuser, слово 'checked' пишется так, как я написал. У тебя же по-другому написано- не хватает одной буквы.
И если ты посмотришь в консоль, как тебе уже советовали, то там, скорее всего, будет указание на эту ошибку.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
achuser  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 42435
На форуме: 1 год, 3 месяца, 26 дней
Карма:




спасибо, смотрю в книгу вижу фигу называется, сколько смотрел, никак не увидел ошибки smile.gif


консоль ругается на то, что calc not defined и total тоже, хотя определено все выше кода...

Это сообщение отредактировал achuser - 26.01.2016 - 17:56
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
achuser  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 15
Пользователь №: 42435
На форуме: 1 год, 3 месяца, 26 дней
Карма:




так объявляем переменную же.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4284
Пользователь №: 29002
На форуме: 5 лет, 9 месяцев, 22 дня
Карма: 147




в общем путем несложных манипуляций калькулятор вполне себе работает.
т.к. ловить двоечнику халяву желания нет, то мое предложение остается в силе.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22919
Пользователь №: 20039
На форуме: 7 лет, 5 месяцев, 15 дней
Карма: 607




redreem
Мне кажется, что ТС старается и вполне можно ему подсказать. Код исправил, ошибки важные тоже, уверен, что тут какая-то мелочь затесалась, просто найти надо.
Если не ТС старается в решении проблемы, то я даже не знаю кто старается... wink.gif
У меня 1 минута была, не успел проверить...


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4284
Пользователь №: 29002
На форуме: 5 лет, 9 месяцев, 22 дня
Карма: 147




inpost
ну можно было просто смотреть консоль и предпринимать действия. логичные и очевидные. у меня ушла наверно минута или 2, чтобы все решить.
ошибки уровня "вчера увидел javascript, а DOM это дом чтоли?"
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса