Скрипт калькулятора, криво работает

Jackyk
На сайте с 05.10.2005
Offline
342
829

Уважаемые коллеги,

столкнулся тут с ошибками в работе в FireFox простенького кредитного калькулятора. Код весь умещается в одну страничку, можно посмотреть здесь и здесь. Сайты не мои, просто это общедоступный калькулятор, который я хочу установить и себе.

В чем конкретно некорректная работа (в IE и Opera все нормально, только в FF).

1)При выборе "Аннуитетными платежами" и "Убывающими платежами" должно автоматически в нижней строчке переключаться "Ежемесячный платеж" и "Платеж в первый месяц", но этого в FF не происходит, все время высвечивается "Платеж в первый месяц".

2)При расчете графика погашения (то есть после нажатия кнопки) возникает строчка "Схема выплат: undefined." Тогда как в IE и в Opera там все корректно, и вместо "undefined" возникает "Схема выплат: Аннуитетными платежами" и "Схема выплат: Убывающими платежами"

3)Когда код калькулятора добавляешь в виде страницы Drupal, то еще того хуже - в FF вообще не работает расчет, тогда как в IE и Opera - снова все нормально.

Буду признателен за помощь в выявлении причин ошибки. Готов рассмотреть варианты с оплатой, для уточнения условий пишите, пожалуйста, в личку.

С уважением, Евгений.

С уважением, Евгений.
Skom
На сайте с 02.12.2006
Offline
165
#1

C Друпалом не работал, не знаю.

А вот

    if(document.forms.mainform["calcscheme"].options.item(i).selected)

{
scheme=document.forms.mainform["calcscheme"].options.item(i).innerText;
break;
}

меняем на

    if(document.forms.mainform["calcscheme"].options.item(i).selected)

{
scheme=document.forms.mainform["calcscheme"].options.item(i).innerHTML;
break;
}

Это

  switch (document.forms.mainform["calcscheme"].value)

{
case "decr" :
document.all("pay_header").innerText="Платеж в первый месяц";
break;
case "equ" :
document.all("pay_header").innerText="Ежемесячный платеж";
break;
default :
document.all("pay_header").innerText="";
}

меняем на

  switch (document.forms.mainform["calcscheme"].value)

{
case "decr" :
document.all("pay_header").innerHTML="Платеж в первый месяц";
break;
case "equ" :
document.all("pay_header").innerHTML="Ежемесячный платеж";
break;
default :
document.all("pay_header").innerHTML="";
}

В общем, FF не очень тут понимает InnerText

Cras amet qui numquam amavit quique amavit cras amet
Jackyk
На сайте с 05.10.2005
Offline
342
#2

Skom, огромное спасибо, пункты 1 и 2 - решились, всё заработало в FF корректно. В Друпале, к сожалению, нет, ну и хрен с ним, можно и отдельной страничкой этот калькулятор сделать, руками, а не средствами CMS.

S
На сайте с 09.10.2007
Offline
186
#3

document.all - устаревшая тема

надо юзать document.getElementById('id_of_element)

и потом уже с ним плясать

Удобная панель для доменных имен (http://panel.started.ru/) с массовыми операциями. Индивидуальные цены по запросу.
Jackyk
На сайте с 05.10.2005
Offline
342
#4
simka:
document.all - устаревшая тема
надо юзать document.getElementById('id_of_element)
и потом уже с ним плясать

А чем плохо так, как есть? Калькулятор работает, все браузеры воспринимают корректно...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий