Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 22:05 06.07.25 
Компютри и Интернет
   >> WEB Дизайн и HTML
*Кратък преглед

Страници по тази тема: 1 | 2 | (покажи всички)
Тема Javascript IE7 проблемнови  
Автор Nebesen1 (stubborn)
Публикувано06.02.07 12:10



Здравейте
от скоро уча джаваскрипт и писах един код, който взима стойностите от клетки от таблица, която извеждам чрез php и mysql. Та значи имам таблица с попълнени полета и няколко празни, където се смятат различни сборни стойности. Ето го и кода :

В отговор на:


<script type="text/javascript">
search = window.location.href.substr( window.location.href.indexOf( "&count=" ) + 1 )
count=search.substr(6);
var sum;
function calc2()
{
var neto=0
for (g = 1; g < count; g++)
{
if (parseInt(document.getElementById('r'+g).value) >= 0)
{
fira = parseFloat(document.getElementById("outgo_fira").value);
amount = parseFloat(document.getElementById("amount").value);
proda = parseFloat(document.getElementById('r'+g).value);

sum_fira=parseFloat(proda+(proda*(fira/100)));
document.getElementById('f'+g).innerHTML = sum_fira.toFixed(2) + ' лв.';

sum = parseFloat(((amount*proda)*fira/100)+(amount*proda));
document.getElementById('a'+g).innerHTML = sum.toFixed(2) + ' лв.';

price=document.getElementById('p'+g).value;
sum_calc=parseFloat(sum*price);
document.getElementById('c'+g).innerHTML = sum_calc.toFixed(2) + ' лв.';

neto=neto + sum_calc;
}
}
amount=document.getElementById("amount").value;

montaj_fira=parseFloat(document.getElementById("montaj_fira").value);
montaj_amount=parseFloat(amount*montaj_fira);
document.getElementById("montaj_amount").innerHTML=montaj_amount.toFixed(2) + ' лв.';
montaj_cena=parseFloat(document.getElementById("montaj_cena").value);
montaj_sum=parseFloat(montaj_amount*montaj_cena);
document.getElementById("montaj_sum").innerHTML=montaj_sum.toFixed(2) + ' лв.';

neto=parseFloat(neto+montaj_sum);

document.getElementById("neto").innerHTML=neto.toFixed(2) + ' лв.';
document.getElementById("single").innerHTML=(neto/amount).toFixed(2) + ' лв.';

document.getElementById("neto_dds").innerHTML=(neto*(20/100)).toFixed(2) + ' лв.';
document.getElementById("single_dds").innerHTML=((neto/amount)*(120/100)).toFixed(2) + ' лв.';

document.getElementById("final_sum").innerHTML=(neto*(120/100)).toFixed(2) + ' лв.';
document.getElementById("final_count").innerHTML=amount;
}
</script>




Не съм постнал php кода, защото може да се объркате, но ако трябва - няма проблеми, само кажете.
Кодът работи без проблеми във ФФ, но под ИЕ - не. Можете ли да помогнете ?

Just do it

Тема Re: Javascript IE7 проблемнови [re: Nebesen1]  
Автор chernobyl (бръмбар)
Публикувано06.02.07 21:26



Ами пусни си съобщенията за грешки в IE, така ще разбереш къде точно се дъни...

---
Life is too short so love the one you got
Cause you might get run over or you might get shot


Тема Re: Javascript IE7 проблемнови [re: chernobyl]  
Автор Nebesen1 (stubborn)
Публикувано07.02.07 12:55



Line: 18
Char: 5
Error: Object doesn't support this property or method

18-та линия :
fira = parseFloat(document.getElementById("outgo_fira").value);

Всичко ми изглежда наред



Just do it

Тема Re: Javascript IE7 проблемнови [re: Nebesen1]  
Автор ghs (v.2)
Публикувано07.02.07 12:58



имаш ли го онлине някъде, че така на сляпо да се чудим коя линия плаче е трудно



Тема Re: Javascript IE7 проблемнови [re: ghs]  
Автор Nebesen1 (stubborn)
Публикувано07.02.07 13:04



http://construmat.bg/systems.php

цъкни на някоя ... вади таблицата в попъп.

Just do it


Тема Re: Javascript IE7 проблемнови [re: Nebesen1]  
Автор chernobyl (бръмбар)
Публикувано07.02.07 13:16



Не мога да съм сигурен без да видя HTML кода, но съм имал подобен проблем и вероятно се касае за същата причина.

IE се обърква, ако в Jаvascript ползваш име на променлива, което съвпада с ID на някой от HTML елементите.

Примерно, тук имаш "fira = ....."
И ако по-надолу примерно имаш <td id="fira">, IE не знае към променливата или към елемента се обръщаш.

Във Firefox този проблем го няма. Пробвай да ползваш различни имена за променливите и за клетките на таблиците, и виж дали ще помогне.

---
Life is too short so love the one you got
Cause you might get run over or you might get shot

Редактирано от chernobyl на 07.02.07 13:19.



Тема Re: Javascript IE7 проблем [re: chernobyl]  
Автор Nebesen1 (stubborn)
Публикувано07.02.07 13:28



интересно как може да стане, поне при сметките за сбора, взимам стойностите от всички клетки с точно определени имена.

Just do it


Тема Re: Javascript IE7 проблемнови [re: Nebesen1]  
Автор ghs (v.2)
Публикувано07.02.07 13:35



променливите в js-то имат същите имена както id-тата на полетата. това бърка ИЕ

В отговор на:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>


<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Systems Calculator</title>

<script type="text/javascript">
search = window.location.href.substr( window.location.href.indexOf( "&count=" ) + 1 )
count=6;
var sum;
function calc2()
{
var neto=0
for (g = 1; g < count; g++)
{
if (parseInt(document.getElementById('r'+g).value) >= 0)
{
fira = parseFloat(document.getElementById("outgo_fira2").value);
amount = parseFloat(document.getElementById("amount2").value);
proda = parseFloat(document.getElementById('r'+g).value);

sum_fira=parseFloat(proda+(proda*(fira/100)));
document.getElementById('f'+g).innerHTML = sum_fira.toFixed(2) + ' xx.';

sum = parseFloat(((amount*proda)*fira/100)+(amount*proda));
document.getElementById('a'+g).innerHTML = sum.toFixed(2) + ' xx.';

price=document.getElementById('p'+g).value;
sum_calc=parseFloat(sum*price);
document.getElementById('c'+g).innerHTML = sum_calc.toFixed(2) + ' xx.';

neto=neto + sum_calc;
}
}
amount=document.getElementById("amount2").value;

montaj_fira=parseFloat(document.getElementById("montaj_fira2").value);
montaj_amount=parseFloat(amount*montaj_fira);
document.getElementById("montaj_amount2").innerHTML=montaj_amount.toFixed(2) + ' xx.';
montaj_cena=parseFloat(document.getElementById("montaj_cena2").value);
montaj_sum=parseFloat(montaj_amount*montaj_cena);
document.getElementById("montaj_sum2").innerHTML=montaj_sum.toFixed(2) + ' xx.';

neto=parseFloat(neto+montaj_sum);

document.getElementById("neto2").innerHTML=neto.toFixed(2) + ' xx.';
document.getElementById("single2").innerHTML=(neto/amount).toFixed(2) + ' xx.';

document.getElementById("neto_dds2").innerHTML=(neto*(20/100)).toFixed(2) + ' xx.';
document.getElementById("single_dds2").innerHTML=((neto/amount)*(120/100)).toFixed(2) + ' xx.';

document.getElementById("final_sum2").innerHTML=(neto*(120/100)).toFixed(2) + ' xx.';
document.getElementById("final_count2").innerHTML=amount;
}
</script></head><body>
<center>
<h1>System Test</h1><table border="1" cellpadding="0" cellspacing="0" width="700">
<thead>
<tr>
<th width="20%">xxxxxxxxxxxx</th>
<th width="5%">xxxxx</th>
<th width="15%">xxxxxxxx xxxxx</th>
<th bgcolor="yellow" width="15%">xxxxxx x xxxx
;<input id="outgo_fira2" size="4" type="text">%</th>
<th bgcolor="yellow" width="10%">xxxxxxxxxx
;<input id="amount2" value="4" size="4" type="text"></th>
<th width="15%">xx. xxxx
;xx</th>
<th width="20%">xxxx
;xx</th></tr>
</thead><tbody><tr>
<td align="center">cat_child</td>
<td align="center">cm2</td>
<td align="center" bgcolor="yellow"><input id="r1" name="r1" size="4" value="0" onkeyup="javascript:calc2();" type="text"> xx.</td>
<td id="f1" align="center">&nbsp;</td>
<td id="a1" align="center">&nbsp;</td>
<td align="center" bgcolor="yellow"><input id="p1" name="p1" size="4" value="8" onkeyup="javascript:calc2();" type="text"> xx.</td>
<td id="c1" align="center">&nbsp;</td>
</tr><tr>
<td align="center">test1</td>
<td align="center">m2</td>
<td align="center" bgcolor="yellow"><input id="r2" name="r2" size="4" value="0" onkeyup="javascript:calc2();" type="text"> xx.</td>
<td id="f2" align="center">&nbsp;</td>
<td id="a2" align="center">&nbsp;</td>
<td align="center" bgcolor="yellow"><input id="p2" name="p2" size="4" value="15" onkeyup="javascript:calc2();" type="text"> xx.</td>
<td id="c2" align="center">&nbsp;</td>
</tr><tr>
<td align="center">pop</td>
<td align="center">m2</td>
<td align="center" bgcolor="yellow"><input id="r3" name="r3" size="4" value="0.9" onkeyup="javascript:calc2();" type="text"> xx.</td>
<td id="f3" align="center">&nbsp;</td>
<td id="a3" align="center">&nbsp;</td>
<td align="center" bgcolor="yellow"><input id="p3" name="p3" size="4" value="12" onkeyup="javascript:calc2();" type="text"> xx.</td>
<td id="c3" align="center">&nbsp;</td>
</tr><tr>
<td align="center">okok</td>
<td align="center">cm2</td>
<td align="center" bgcolor="yellow"><input id="r4" name="r4" size="4" value="0" onkeyup="javascript:calc2();" type="text"> xx.</td>
<td id="f4" align="center">&nbsp;</td>
<td id="a4" align="center">&nbsp;</td>
<td align="center" bgcolor="yellow"><input id="p4" name="p4" size="4" value="6.9" onkeyup="javascript:calc2();" type="text"> xx.</td>
<td id="c4" align="center">&nbsp;</td>
</tr><tr>
<td align="center">lol</td>
<td align="center">m3</td>
<td align="center" bgcolor="yellow"><input id="r5" name="r5" size="4" value="1.3" onkeyup="javascript:calc2();" type="text"> xx.</td>
<td id="f5" align="center">&nbsp;</td>
<td id="a5" align="center">&nbsp;</td>
<td align="center" bgcolor="yellow"><input id="p5" name="p5" size="4" value="7.85" onkeyup="javascript:calc2();" type="text"> xx.</td>
<td id="c5" align="center">&nbsp;</td>
</tr><tr>
<td align="center">xxxxxx</td>
<td align="center">xx.x.</td>
<td align="center">1 xx.</td>
<td align="center" bgcolor="yellow"><input id="montaj_fira2" value="1" size="4" onkeyup="javascript:calc2();" type="text"> xx.</td>
<td id="montaj_amount2" align="center">&nbsp;</td>
<td align="center" bgcolor="yellow"><input id="montaj_cena2" value="1" size="4" onkeyup="javascript:calc2();" type="text"> xx.</td>
<td id="montaj_sum2" align="center">&nbsp;</td>
</tr></tbody><tfoot>
<tr>
<th colspan="3"><font size="2">xxxxxxxx xx xxxx x xxxxxxxx xx xxxxxxxx xxxxx xx xx.x. xxx xxx</font></th>
<th>&nbsp;</th>
<th id="single2">&nbsp;</th>
<th>xxxx xxxx</th>
<th id="neto2">&nbsp;</th>
</tr>
<tr>
<th colspan="3"><font size="2">xxxxxxxx xx xxxx x xxxxxxxx xx xxxxxxxx xxxxx xx xx.x. &nbsp; x &nbsp; xxx</font></th>
<th>&nbsp;</th>
<th id="single_dds2">&nbsp;</th>
<th>20% xxx</th>
<th id="neto_dds2">&nbsp;</th>
</tr>
<tr>
<th colspan="3"><font color="red" size="2">xxxxxxxxx: xxxxxxxx xxxxxx xx 'xxxxxxx'. xxxxxxxxx xx xx xx xxxxxxxxx xxxxxxxxxx</font></th>
<th>&nbsp;</th>
<th>xxxx xx</th>
<th id="final_count2">&nbsp;</th>
<th id="final_sum2">&nbsp;</th>
</tr></tfoot></table></center>
<a href="javascript:calc2();">proba</a>
</body></html>




Редактирано от ghs на 07.02.07 13:37.



Тема Re: Javascript IE7 проблемнови [re: ghs]  
Автор Nebesen1 (stubborn)
Публикувано07.02.07 13:38



аааа извинявам се за предния ми пост, не бях съсредотучен, когато четох. Сега ще пробвам да сменя имената и ще пиша резултата. Предварително благодаря момчета.

Just do it


Тема Re: Javascript IE7 проблемнови [re: Nebesen1]  
Авторkapitancho (Нерегистриран)
Публикувано08.02.07 09:12



Човече, сложи по едно var пред променливите и заспива работата. Няма какво да преименуваш.




Страници по тази тема: 1 | 2 | (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.