簡體   English   中英

HTML5表單顯示[對象HTMLInputElement] [對象HTMLInputElement],而不是兩個數字相加的實際結果

[英]HTML5 form display [object HTMLInputElement][object HTMLInputElement] instead of actual result of addition of two numbers

我是html5和javascript的新手,並且正在使用html5和javascript編寫簡單的表單。 當我在netbeans中按run時,窗體按預期方式顯示在chromo中,但是當我輸入兩個數字並按add時,而不是在結果列中顯示3 ,而是顯示[object HTMLInputElement][object HTMLInputElement]

在此處輸入圖片說明

有人可以告訴我為什么會這樣嗎? 如何解決此錯誤?

<html>
    <head>
        <title>TODO supply a title</title>
        <link rel="shortcut icon" href=""><!--this is to be removed for production code, its been placed here because otherwise netbeans produce error message-->

        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <script type="text/javascript">
            function addTwoNumbers() {
                var firstNumber = document.getElementById("txtFirstNumber").valueOf();
                var secondNumber = document.getElementById("txtSecondNumber").valueOf();

                document.getElementById("txtResult").value = firstNumber + secondNumber;
            }
        </script>
    </head>
    <body>
        <form>
            First number<br>
            <input type="text" ID="txtFirstNumber"><br>
            Second number<br>
            <input type="text" ID="txtSecondNumber"><br>
            Result:<br>
            <input type="text" ID="txtResult"><br>
            <br>
            <input type="button" value='add' id='btnAdd' onclick="addTwoNumbers()" />
        </form>
    </body>
</html>

使用value屬性作為Object.prototype.valueOf()方法返回指定對象的原始值(在您的情況下為DOMElement

也將input-valueNumber ,然后進行操作,因為Element.value返回一個String+會將這些值連接起來而不是adding

Unary plus (+)unary plus operator在其操作數之前並求值為其操作數,但是嘗試將其轉換為number (如果尚未轉換為number

 function addTwoNumbers() { var firstNumber = +document.getElementById("txtFirstNumber").value; var secondNumber = +document.getElementById("txtSecondNumber").value; //Output of `valueOf()` console.log(document.getElementById("txtFirstNumber").valueOf()); document.getElementById("txtResult").value = firstNumber + secondNumber; } 
 <form> First number <br> <input type="text" ID="txtFirstNumber"> <br>Second number <br> <input type="text" ID="txtSecondNumber"> <br>Result: <br> <input type="text" ID="txtResult"> <br> <br> <input type="button" value='add' id='btnAdd' onclick="addTwoNumbers()" /> </form> 

使用.value而不是.valueOf()

http://codepen.io/anthonyastige/pen/RRKmrz

var firstNumber = document.getElementById("txtFirstNumber").value
var secondNumber = document.getElementById("txtSecondNumber").value
  var firstNumber = document.getElementById("txtFirstNumber").value;
                var secondNumber = document.getElementById("txtSecondNumber").value;

使用值而不是valueOf

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM