Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Не работает скрипт калькулятора в FF 4.0 (https://javascript.ru/forum/css-html-firefox-mizilla/42572-ne-rabotaet-skript-kalkulyatora-v-ff-4-0-a.html)

YaVolodya 01.11.2013 08:33

Не работает скрипт калькулятора в FF 4.0
 
Здравствуйте, есть простой скриптик калькулятора. Вводим длину и ширину, а на выходе получаем площадь и цену, также есть функция check_digits, которая препятствует вводу символов отличных от цифр, данный скрипт прекрасно работает в IE 8.0, Chrome, Opera, Safari, но недавно случайно обнаружил, что скрипт не работает в FF 4.0 (JS включен), вот пример скрипта вместе с html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>
<body>
<script type="text/javascript">
    function check_digits(if_no_points) {
        var key = event.keyCode;
        if (!(key >= 48 && key <= 57) && key != 8 && key != 46) { event.returnValue = false; }
    }
    function calculate() {
        var cena = 0;
        var dlina = document.calc.dlina.value;
        var shirina = document.calc.shirina.value;
        
        if (dlina > 0 && shirina > 0) {
            document.getElementById('ploschad').innerText = dlina * shirina;
            cena = dlina * shirina * 100;
        }
        else
            document.getElementById('ploschad').innerText = "0";
 
        document.getElementById('cena').innerText = cena + "руб.";
        return true;
    }
</script>
<form name="calc">
    <table>
    <tr>
        <td>Длина комнаты (метры):</td>
        <td><input size="10" name="dlina"  onkeypress="check_digits()" onkeyup="calculate();" /></td>
    </tr>
    <tr>
        <td>Ширина комнаты (метры):</td>
        <td><input size="10" name="shirina"  onkeypress="check_digits()" onkeyup="calculate();" value="" /></td>
    </tr>
    <tr>
        <td>Площадь комнаты:</td>
        <td><span id="ploschad"></span> м<sup>2</sup></td>
    </tr>
    <tr>
        <td>Стоимость:</td>
        <td><span id="cena"></span></td>
    </tr>
    </table>
</form>
</body>
</html>


Подскажите, пожалуйста, в чём причина

рони 01.11.2013 10:12

Цитата:

Сообщение от YaVolodya
Подскажите, пожалуйста, в чём причина

Цитата:

Сообщение от YaVolodya
innerText

Цитата:

Сообщение от YaVolodya
event

:cray:
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script type="text/javascript">
    function check_digits(event) {
        event = window.event || event;
        var key = (event.which) ? event.which : event.keyCode;
        if (!(key >= 48 && key <= 57) && key != 8 && key != 46) { return false; }
    }
    function calculate() {
        var cena = 0;
        var dlina = +document.calc.dlina.value||0;
        var shirina = +document.calc.shirina.value||0;

        if (dlina > 0 && shirina > 0) {
            document.getElementById('ploschad').innerHTML = dlina * shirina;
            cena = dlina * shirina * 100;
        }
        else
            document.getElementById('ploschad').innerHTML = "0";

        document.getElementById('cena').innerHTML = cena + "руб.";
        return true;
    }
</script>
<form name="calc">
    <table>
    <tr>
        <td>Длина комнаты (метры):</td>
        <td><input size="10" name="dlina"  onkeypress="return check_digits(event)" onkeyup="calculate();" /></td>
    </tr>
    <tr>
        <td>Ширина комнаты (метры):</td>
        <td><input size="10" name="shirina"  onkeypress="return check_digits(event)" onkeyup="calculate();" value="" /></td>
    </tr>
    <tr>
        <td>Площадь комнаты:</td>
        <td><span id="ploschad"></span> м<sup>2</sup></td>
    </tr>
    <tr>
        <td>Стоимость:</td>
        <td><span id="cena"></span></td>
    </tr>
    </table>
</form>
</body>
</html>

YaVolodya 01.11.2013 11:04

Спасибо, работает


Часовой пояс GMT +3, время: 03:30.