|
|
|
| Уважаемые профессионалы в JavaScript,
Почему этот код работает в Опере и неработает в IE и Фоксе?
<script language="JavaScript">
function recalc()
{
var tot_sum = 0;
var total_sum = document.getElementById('total_sum');
for (i=1; i<=3; i++)
{
prc = document.getElementById('price'+i).innerText;
quant = document.forms['form1'].elements['quant'+i].value;
// или так
//quant = document.getElementById('quant'+i).value;
tot_sum += prc * quant;
}
total_sum.innerText = tot_sum;
}
</script>
<body>
<form name="form1">
Цена: <span id="price1">10.10</span> <input type="text" id="quant1" value="1"><br>
Цена: <span id="price2">10.10</span> <input type="text" id="quant2" value="1"><br>
Цена: <span id="price3">10.10</span> <input type="text" id="quant3" value="1"><br>
</form>
Итого: <span id="total_sum">30.3</span>0<br>
<input type="button" value="Пересчитать" onclick="recalc();">
</body>
|
Как сделать, чтобы работало во всех браузерах? | |
|
|
|
|
|
|
|
для: WebTech
(14.09.2006 в 15:03)
| | Попробуте заменить имя recalc() на чего нибудь другое. Например rekalk() | |
|
|
|
|
|
|
|
для: ExtraBrain
(14.09.2006 в 15:19)
| |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>_|recalc|_</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<script language="JavaScript" type="text/javascript">
<!--
function reCalc(){
var tot_sum = 0;
var total_sum = document.getElementById('total_sum');
for (i=1; i<=3; i++){
var prc = document.getElementById('price'+i).innerHTML;
var quant = document.getElementById('quant'+i).value;
tot_sum += prc*quant;
}
total_sum.innerHTML = tot_sum;
}
//-->
</script>
<body>
<div>
<form name="form1" action="">
Цена: <span id="price1">10.10</span> <input type="text" id="quant1" value="1" /><br />
Цена: <span id="price2">10.10</span> <input type="text" id="quant2" value="1" /><br />
Цена: <span id="price3">10.10</span> <input type="text" id="quant3" value="1" /><br />
<br /><br />
Итого: <span id="total_sum">30.3</span>0<br /><br />
<input type="button" value="Пересчитать" onclick="reCalc();" >
</form>
</div>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: Padonak
(14.09.2006 в 16:19)
| | Уважаемый, Padonak, не могли бы вы объяснить, в чем была моя ошибка? | |
|
|
|
|
|
|
|
для: WebTech
(14.09.2006 в 17:54)
| | ну были там ошибки такие как: не указан экшн в форме и форма просто ни в чем не содержащаяся не должна быть потому что воспринимается как ошибка. потом я заменил имя самой функции как советовали выше (на это только ИЕ реагировал) и еще там что-то поменял (иннерТекст на иннерХТМЛ) - сам сравни код там же все видно | |
|
|
|
|
|
|
|
для: Padonak
(14.09.2006 в 18:18)
| | Я все проверил. Решающим оказалось только имя функции. Вся проблема оказалась в заглавной букве в функции. Все остальное не играло никакой рояли. С буквой - это глюк Оперы или IE? | |
|
|
|
|
|
|
|
для: WebTech
(14.09.2006 в 18:28)
| | Это глюк разработчика. Язык - регистрозависимый. :)
Что-то не увидел заглавной буквы. Дело не в ней - слово recalc, очевидно, имеется среди зарезервированных. Заменил на recalc1 - всё заработало (в IE). | |
|
|
|
|
|
|
|
для: 12345
(14.09.2006 в 20:44)
| | WebTech надо не просто чтобы работало делать а чтобы не было ни ошибок ни предупреждений тогда можно спокойно сказать что ты правильно все написал :-) | |
|
|
|
|
|
|
|
для: 12345
(14.09.2006 в 20:44)
| | recalc( )
recalc(flag)
В IE5 представлена концепция динамических свойств. С помощью метода setExpression() для всех элементов и значений таблицы стилей expression() можно устанавливать зависимости между свойствами объектов и потенциально динамическими свойствами, такими как размер окна или расположение перетаскиваемого элемента. После того, как установлены эти зависимости, метод document.recalc() заставляет обновлять зависимости в ответ на некоторое действие пользователя, например, изменение размеров окна или перемещение элемента.
Возвращаемое значение
Зависит от команды.
Параметры flag
Если false (по умолчанию), то обновление выполняется только для выражений, в которых броузер обнаружил изменения, произошедшие со времени последнего обновления. В противном случае обновляются все выражения, независимо от того, изменились они или нет. | |
|
|
|
|
|
|
|
для: WebTech
(14.09.2006 в 17:54)
| | Уважаемый, Padonak, не могли бы вы объяснить, в чем была моя ошибка?- хорошо сказано, черт возьми...
P.S. Никому не в обиду, если буду кем-то неправильно понят...:) | |
|
|
|
|
|
|
|
для: coloboc66
(15.09.2006 в 11:20)
| | -)))))))))))))))))))))))))))) | |
|
|
|
|
|
|
|
для: Mirage
(15.09.2006 в 11:25)
| | я тоже улыбался :-))))) | |
|
|
|
|
|
|
|
для: Padonak
(15.09.2006 в 13:04)
| | Спасибо, Katty! :-) | |
|
|
|