Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   неправильный скрипт (https://javascript.ru/forum/project/36386-nepravilnyjj-skript.html)

Михендр 13.03.2013 18:30

неправильный скрипт
 
Здравствуйте! Помогите разобраться со скриптом. Хотел сделать простенькую страницу которая позволяет вычислить сумму или разность 2-ух чисел умноженную на пи, но получилось плохо:
<head>
    <meta charset="utf-8">
</head>
<body>
<form name="numbers">
    <div>Первое число:<br>
        <input type="text" name="number1">
    </div>
    <div>Второе число:<br>
        <input type="text" name="number2">
    </div>
    <div>
        Математическая операция:<br>
        <input type="radio" name="operation" value="plus"> + <br>
        <input type="radio" name="operation" value="minus"> - <br>
    </div>
    <div>Результат:<br>
        <input type="text" name="result">
        <input id="calculate" type="button" value="Посчитать">
    </div>
</form>
<script>
    function value1() {
        var numberOne = document.forms[0].elements.number1.value;
        var numberTwo = document.forms[0].elements.number2.value;
        var oper = document.forms[0].elements.operation;
        var value;
        if (oper.value === 'plus') {
        value = +(numberOne) + (+(numberTwo));
        } else {
            value = +(numberOne) - (+(numberTwo));
        }
        /*var value;
        for (var i = 0; i < oper.length; i++){
        if (oper[i].type === 'radio' &&  oper[i].name === 'operation') {
        //
        value = oper[i].value;
    }

        }*/

    }
     function mathOperByPi(value) {
         return value * Math.PI;
     }
    document.getElementById('calculate').onclick = function(MathOperByPi(value)){
        document.forms[0].elements.result.setAttribute('value', '');
    };


</script>
</body>

если можно поподробнее объясните где ошибки:help:

danik.js 13.03.2013 18:39

Цитата:

Сообщение от Михендр
   document.getElementById('calculate').onclick = function(MathOperByPi(value)){

Какая-то непонятная конструкция. Может быть так?

document.getElementById('calculate').onclick = function(){
    var result = MathOperByPi(value1());
    document.forms[0].elements.result.value = result;
};


Но функция value1 должна вернуть результат. Сейчас она этого не делает. То есть нужно дописать в конце return value;

Михендр 13.03.2013 18:48

не, всё равно не получается.

danik.js 13.03.2013 19:11

Цитата:

Сообщение от Михендр
не, всё равно не получается.

Ну это диагноз значит. Сожалею.

danik.js 13.03.2013 19:12

Регистр поправьте.

рони 13.03.2013 19:42

Михендр,
<!DOCTYPE HTML>

<html>

<head>
    <meta charset="utf-8">
</head>
<body>
<form name="numbers">
    <div>Первое число:<br>
        <input type="text" name="number1">
    </div>
    <div>Второе число:<br>
        <input type="text" name="number2">
    </div>
    <div>
        Математическая операция:<br>
        <input type="radio" name="operation" value="plus" > + <br>
        <input type="radio" name="operation" value="minus"> - <br>
    </div>
    <div>Результат:<br>
        <input type="text" name="result">
        <input id="calculate" type="button" value="Посчитать">
    </div>
</form>
<script>
    function value1() {
        var numberOne = +document.forms[0].number1.value||0;
        var numberTwo = +document.forms[0].number2.value||0;
        var oper = document.forms[0].operation[1].checked ? document.forms[0].operation[1]:document.forms[0].operation[0];
        var value;
        if (oper.value === 'plus') {
        value = numberOne + numberTwo;
        } else {
            value = numberOne - numberTwo;
        }
    return  value

    }
     function mathOperByPi(value) {
         return value * Math.PI;
     }
    document.getElementById('calculate').onclick = function(){
    document.forms[0].result.value = mathOperByPi(value1());
    };


</script>
</body>

</html>

Михендр 13.03.2013 20:13

Огромное спасибо! Ща буду разбирать где я ошибался:)

Гробовщик 14.03.2013 05:56

1+2=9.42477796076938, а чё математику изменили да? Всё шаблон порван, восстановлению не подлежит:(

danik.js 14.03.2013 07:25

Скорее чей-то мозг слегка порван
Цитата:

Сообщение от Михендр
...позволяет вычислить сумму или разность 2-ух чисел умноженную на пи



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