|
Страници по тази тема: 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
| |
|
Ами пусни си съобщенията за грешки в IE, така ще разбереш къде точно се дъни...
---
Life is too short so love the one you got
Cause you might get run over or you might get shot
| |
|
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
| |
|
Не мога да съм сигурен без да видя 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.
| |
|
интересно как може да стане, поне при сметките за сбора, взимам стойностите от всички клетки с точно определени имена.
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"> </td>
<td id="a1" align="center"> </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"> </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"> </td>
<td id="a2" align="center"> </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"> </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"> </td>
<td id="a3" align="center"> </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"> </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"> </td>
<td id="a4" align="center"> </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"> </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"> </td>
<td id="a5" align="center"> </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"> </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"> </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"> </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> </th>
<th id="single2"> </th>
<th>xxxx xxxx</th>
<th id="neto2"> </th>
</tr>
<tr>
<th colspan="3"><font size="2">xxxxxxxx xx xxxx x xxxxxxxx xx xxxxxxxx xxxxx xx xx.x. x xxx</font></th>
<th> </th>
<th id="single_dds2"> </th>
<th>20% xxx</th>
<th id="neto_dds2"> </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> </th>
<th>xxxx xx</th>
<th id="final_count2"> </th>
<th id="final_sum2"> </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 | (покажи всички)
|
|
|