html 我做错了什么?我是js的初学者[closed]

qpgpyjmq  于 2022-11-27  发布在  其他
关注(0)|答案(3)|浏览(202)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
3天前关闭。
Improve this question
这正是他们想要我们做的:
创建一个页面(+ JavaScript),在其中实现一个简单的加法器,即您将在文本框中键入数字,然后单击按钮,这些数字将被添加到第二个文本框中显示的总数中。
如果总和超过1000,则显示一条消息。
我已经试过了,但是无论我怎么试,似乎都不起作用。我很感激一些帮助

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="text" id="txt1" value="0"/>
    <button onclick="AddNumbers()">Add</button>
    <input type="text" id="txt2" value="0"/>
    
    <script>
        function AddNumbers() {
            var t1 = document.getElementById("txt1").value;
            var t2 = document.getElementById("txt2").value;
            var sum = parseFloat("t1").value + parseFloat("t2").value ;
            if (sum > 1000){
                window.alert("Over 1000");
            } else {
                t2=sum;
                document.getElementById("txt2").innerHTML=t2;
            }     
        }
    </script>
</body>
</html>
pod7payv

pod7payv1#

正如一些评论所提到的,您的错误在这一行:

var sum = parseFloat("t1").value + parseFloat("t2").value ;

您需要获取变量t1和t2,它们已经是(字符串化)数字。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="text" id="txt1" value="0"/>
    <button onclick="AddNumbers()">Add</button>
    <input type="text" id="txt2" value="0"/>
    
    <script>
        function AddNumbers() {
            var t1 = document.getElementById("txt1").value;
            var t2 = document.getElementById("txt2").value;
            var sum = parseFloat(t1) + parseFloat(t2);
            if (sum > 1000){
                window.alert("Over 1000");
            } else {
                t2=sum;
                document.getElementById("txt2").value=t2;
            }     
        }
    </script>
</body>
</html>

然而,当你写这篇文章的时候,它试图用答案替换第二个输入的内容。你可能应该在页面上创建第三个元素来保存加法的结果。

brgchamk

brgchamk2#

将结果放入#txt2不是一个好主意,因为如果这样做,就会丢失#txt2。
接下来,你不应该在输入上使用.innerHTML来改变它的值,而应该使用.value = x
如果要以HTML格式显示总和,请创建一个新标记,该标记将接收.innerHTML
parseFloat是在变数上呼叫的,因此请使用如下方式:parseFlot(t1)而不是parseFloat("t1")。那么,t1是一个字符串,因此您不必调用.value

<body>
    <input type="number" id="nb1" value="0" />
    <span>+</span>
    <input type="number" id="nb2" value="0" />
    <button onclick="AddNumbers()">=</button>
    <span id="result3"></span>

    <script>
        function AddNumbers() {
            var t1 = document.getElementById("nb1").value;
            var t2 = document.getElementById("nb2").value;
            var sum = parseFloat(t1) + parseFloat(t2);
            if (sum > 1000) {
                window.alert("Over 1000");
            } else {
                t2 = sum;
                document.getElementById("result3").innerHTML = t2;
            }
        }
    </script>
</body>
pcrecxhr

pcrecxhr3#

变量t1和t2已经被赋予了textbox的值,因此只需添加变量即可。要设置textbox中的值,需要使用.value = 'someValue',innerHTML -用于将DOM元素添加/追加到目标元素中
尝试下面的代码,它可能会帮助你

function AddNumbers() {
        var t1 = document.getElementById("txt1").value;
        var t2 = document.getElementById("txt2").value;
        var sum = parseFloat(t1) + parseFloat(t2) ;
        if (sum > 1000){
            window.alert("Over 1000");
        } else {
            t2=sum;
            document.getElementById("txt2").value=t2;
        }     
    }

相关问题