显示javascript函数的返回值

时间:2014-03-18 18:51:46

标签: javascript html function

我有一个函数,它接受两个参数并返回总和。

现在我正在尝试创建一个包含两个数字的表单。单击按钮时,应调用函数sum并显示这两个数字的总和。 显示返回值的最佳方式是什么?

到目前为止我的代码:

<form>
        <input type="number" id="firstnumber"/>
        <input type="number" id="secondnumber"/>
        <input type="button" onclick="summa(document.getElementById(firstnumber),document.getElementById(secondnumber))" id="Summa" value="Calculate sum"/>
    </form>
    <div>
        <script type="text/javascript">
document.write(document.getElementById(Summa))
</script>
    </div>

功能:

<script type="text/javascript">
        function summa(number1, number2)
        {
            var sum = number1 + number2;
            return sum;
        }
    </script>

1 个答案:

答案 0 :(得分:3)

对于你正在做的事情,有一些事情有点不稳定。首先,您没有将输入中的传递给您的函数;你自己传递了元素。其次,在尝试将值写入文档时,您再次引用元素而不是元素的值。最后,您将尝试将元素(或它们的字符串值,如果您正在检索它们)一起添加,这些元素只会连接成一个新字符串而不是执行实际数学。

这是我真正清理和修复您的尝试的方法:

首先,让我们完全摆脱丑陋且突兀的onclick事件处理程序(稍后我们将以不同的方式连接事件处理程序):

<input type="button" id="Summa" value="Calculate sum"/>

添加第三个输入,以便我们显示总和:

<input type="text" id="sumnumber" />

现在让我们在一个地方完成所有JavaScript工作,作为结束</body>标记之前的最后一件事。这样可以保持HTML的清洁,而不会使用内联JavaScript,因此您无需在需要进行更改时深入了解它。

    ...
    <script type="text/javascript">

        // Your new summing function definition that takes input values
        function summa(valueOne, valueTwo) {
            // Convert the strings to numbers before doing the math
            return Number(valueOne) + Number(valueTwo);
        }

        // Now let's hold onto some references to the elements in the page
        var sumButton = document.getElementById('Summa');
        var firstNumber = document.getElementById('firstnumber');
        var secondNumber = document.getElementById('secondnumber');
        var sumNumber = document.getElementById('sumnumber');

        // Wire up the event
        sumButton.onclick = function() {
            // Re-use the variables outside of this scope to retrieve 
            var sum = summa(firstNumber.value, secondNumber.value);
            // Update the sum element with the result of the function
            sumNumber.value = sum.toString();
        };

    </script>
</body>

这是一个有效的 jsFiddle Demo

注意:如果这将是生产代码,而不仅仅是教学示例,我还会做其他事情,包括:(1)数字验证,以及(2)锁定输入(最大长度等)和输出(更新到<span>或类似),以及其他小事。