为什么我不能在javascript中使用+?

时间:2018-03-06 19:53:01

标签: javascript

<!DOCTYPE html>
<html>
<head>
    <title>Function</title>

    <script type="text/javascript">
        function sum(x,y) {
            var z = x+y;
            document.write("Sum is"+z);
        }
    </script>
</head>
<body>
    <form>
        <input type="" id="t1" name=""/>
        <input type="" id="t2" name=""/>
        <input type="button" onclick="sum(t1.value,t2.value)" value="Click me"/>
    </form>
</body>
</html>

嗨,大家好,我是JavaScript的初学者,我正面临这个小问题。如果我输入5和5,结果是55.但我想总结这些值。

2 个答案:

答案 0 :(得分:0)

正如@TonyDong所说,如果所需的输入是整数,则使用parseInt将字符串转换为int。

为了使您的功能更好,您需要在求和之前先验证输入。

以下是一个例子:

  1. 使两个输入的类型为&#39;数字&#39;

  2. checkValidity()表示函数= sum中的表单或两个输入。如果验证,则对值求和,否则返回错误。

  3. &#13;
    &#13;
    <!DOCTYPE html>
    <html>
    <head>
        <title>Function</title>
    
        <script type="text/javascript">
    
            function sum(x,y)
            {
                if(document.getElementById("submit").checkValidity()) {
                  var z = parseInt(x)+parseInt(y);
                  document.write("Sum is "+z);
                }
                else {
                  document.write("Input value must be Int!");
                }
            }
        </script>
    </head>
    <body>
    
        <form id="submit">
            <input id="t1" name="" type="number"/>
            <input id="t2" name="" type="number"/>
            <input type="button" onclick="sum(t1.value,t2.value)" value="Click me"/>
        </form>
    
    </body>
    </html>
    &#13;
    &#13;
    &#13;

答案 1 :(得分:-1)

在进行求和时,首先应将x和y转换为整数,如parseInt(x)和parseInt(y)。 然后,您可以使用console.log。而不是document.write。

<!DOCTYPE html> 
<html>
 <head>
 <title>Function</title>
 <script type="text/javascript"> 
function sum(x,y) { 
var z = parseInt(x)+parseInt(y); 
console.log("Sum is",z); 
} 
</script>
 </head>
 <body> 
<form>
 <input type="" id="t1" name=""/>
 <input type="" id="t2" name=""/> 
<input type="button" onclick="sum(t1.value,t2.value)" value="Click me"/> 
</form>
 </body>
 </html>